Menu
CoddyTech

Verschachtelte Schleife

Teil des Abschnitts Grundlagen der GDScript-Journey von Coddy. Lektion 49 von 92.

Eine verschachtelte Schleife ist eine Schleife innerhalb einer anderen Schleife. Bei jeder Iteration der äußeren Schleife wird die innere Schleife vollständig durchlaufen:

var rows := 3
var cols := 2
for i in range(rows):
	print("Outer: ", i)
	for j in range(cols):
		print("  Inner: ", j)
Outer: 0
  Inner: 0
  Inner: 1
Outer: 1
  Inner: 0
  Inner: 1
Outer: 2
  Inner: 0
  Inner: 1

Der innere Block ist um zwei Ebenen eingerückt. Er wird insgesamt rows x cols = 3 x 2 = 6 Mal ausgeführt. j beginnt jedes Mal wieder bei 0, wenn die äußere Schleife ausgeführt wird, während rows und cols gleich bleiben und den Schleifen nur mitteilen, wann sie stoppen sollen.

Die beiden Schleifen benötigen unterschiedliche Variablennamen. for i innerhalb einer anderen for i-Schleife zu schreiben, ist ein Fehler, der gemeldet wird, bevor das Programm ausgeführt wird.

Verschachtelte Schleifen sind für Zeilen und Spalten nützlich. print() beendet immer die Zeile. Um also eine Reihe von Sternen auszugeben, baue sie zuerst in einem String auf und gib ihn einmal aus, wenn die innere Schleife abgeschlossen ist:

for row in range(2):
	var line := ""
	for col in range(3):
		line += "*"
	print(line)
***
***

Die äußere Schleife wird einmal pro Zeile ausgeführt, und die innere Schleife fügt pro Spalte einen Stern hinzu. Ein break innerhalb der inneren Schleife beendet nur die innere Schleife: Die äußere Schleife fährt mit ihrer nächsten Iteration fort.

challenge icon

Aufgabe

Einfach

Das Programm liest zwei ganze Zahlen ein: rows und cols.

Verwende verschachtelte Schleifen, um ein Rechteck aus Sternen (*) mit rows Zeilen und cols Sternen in jeder Zeile auszugeben.

Für die Eingaben 3 und 4 lautet die Ausgabe:

****
****
****

Verwende für jede Schleife einen neuen Zähler (zum Beispiel row für die Zeilen und col für die Sterne in einer Zeile) und vergleiche ihn mit rows oder cols. Ändere rows und cols selbst nicht: Jede Zeile benötigt erneut cols.

Probier es selbst

extends Node

func _ready():
	var rows := int(OS.read_string_from_stdin())
	var cols := int(OS.read_string_from_stdin())
	# Äußere Schleife: ein Durchlauf pro Zeile
	# Innere Schleife: einen Stern pro Spalte hinzufügen
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: Online-GDScript-Compiler