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: 1Der 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.
Aufgabe
EinfachDas 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
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenGanzzahldivisionModulo-OperatorRechenabkürzungenRückblick – Einfache MathematikVergleichsoperatoren7Einfache Ein- und Ausgabe
AusgabeAusgabe mit VariablenString-FormatierungEingabeTypumwandlungWiederholung – bis 120Wiederholung – Wahr oder falsch10Funktionen
Eine Funktion deklarierenArgumenteRückgabewertRückgabetypenWiederholung – Sigma-FunktionWiederholung – ValidierungsfunktionStandardwerte5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung – einfache LogikLogische Operatoren Teil 3Ternärer Operator8Rechnungsteiler
BegrüßungsnachrichtEingaben erfassen11FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion3Variablen Teil 2
TypdeklarationTypinferenzKonstantenWiederholung – Variablen initialisierenTypumwandlung6Entscheidungen treffen
If-AnweisungIf - ElseWiederholung – einfacher TaschenrechnerVerschachteltes If - ElseMatch-Anweisung9Schleifen
For-SchleifeWhile-SchleifeBreakContinueWiederholung – FakultätDie Range-FunktionVerschachtelte SchleifeWiederholung – Dynamische EingabeÜbe selbstständig: Online-GDScript-Compiler