Verschachtelte Schleife
Teil des Abschnitts Grundlagen der Swift-Journey von Coddy — Lektion 49 von 86.
Eine verschachtelte Schleife ist einfach eine Schleife innerhalb einer anderen Schleife. Die innere Schleife durchläuft alle ihre Iterationen für jede einzelne Iteration der äußeren Schleife.
for row in 1...3 {
for col in 1...2 {
print("Row \(row), Col \(col)")
}
}
// Ausgabe:
// Row 1, Col 1
// Row 1, Col 2
// Row 2, Col 1
// Row 2, Col 2
// Row 3, Col 1
// Row 3, Col 2Für jeden Wert von row durchläuft die innere Schleife vollständig alle Werte von col. Bei 3 äußeren Iterationen und 2 inneren Iterationen wird der Code im Inneren insgesamt 6 Mal ausgeführt (3 × 2).
Verschachtelte Schleifen werden häufig verwendet, um mit gitterartigen Strukturen zu arbeiten oder um Muster zu erzeugen.
Hier ist ein Beispiel, das ein einfaches Rechteck aus Sternchen ausgibt:
for row in 1...2 {
for col in 1...4 {
print("*", terminator: "")
}
print("") // Zur nächsten Zeile wechseln
}
// Ausgabe:
// ****
// ****Das terminator: "" verhindert, dass print einen Zeilenumbruch hinzufügt, sodass die Sternchen in derselben Zeile erscheinen. Nachdem die innere Schleife beendet ist, wechselt print("") in die nächste Zeile.
Aufgabe
EinfachLies zwei Ganzzahlen aus der Eingabe: rows und cols. Verwende verschachtelte Schleifen, um ein Gitter aus Zahlen auszugeben, bei dem jede Zelle das Produkt aus ihrer Zeilennummer und Spaltennummer anzeigt.
Du erhältst die folgenden Eingaben:
- Erste Zeile: Anzahl der Zeilen (z. B.
"3") - Zweite Zeile: Anzahl der Spalten (z. B.
"4")
Anforderungen:
- Verwende eine äußere Schleife für die Zeilen (1 bis
rows) - Verwende eine innere Schleife für die Spalten (1 bis
cols) - Gib das Produkt der aktuellen Zeilen- und Spaltennummern aus
- Trenne Werte in derselben Zeile mit einem Leerzeichen
- Jede Zeile sollte in einer eigenen Zeile stehen
Hinweis: Verwende terminator: " ", um Werte in derselben Zeile zu halten, und verwende dann print("") nach der inneren Schleife, um in die nächste Zeile zu springen.
Wenn zum Beispiel rows den Wert 3 hat und cols den Wert 4, sollte die Ausgabe wie folgt aussehen:
1 2 3 4
2 4 6 8
3 6 9 12 Spickzettel
Eine verschachtelte Schleife ist eine Schleife innerhalb einer anderen Schleife. Die innere Schleife schließt alle ihre Iterationen für jede einzelne Iteration der äußeren Schleife ab.
for row in 1...3 {
for col in 1...2 {
print("Row \(row), Col \(col)")
}
}
// Ausgabe:
// Row 1, Col 1
// Row 1, Col 2
// Row 2, Col 1
// Row 2, Col 2
// Row 3, Col 1
// Row 3, Col 2Mit 3 äußeren Iterationen und 2 inneren Iterationen wird der Code insgesamt 6 Mal ausgeführt (3 × 2).
Verschachtelte Schleifen sind nützlich für gitterartige Strukturen und Muster:
for row in 1...2 {
for col in 1...4 {
print("*", terminator: "")
}
print("") // Zur nächsten Zeile wechseln
}
// Ausgabe:
// ****
// ****Verwenden Sie terminator: "", um zu verhindern, dass print einen Zeilenumbruch hinzufügt, sodass die Ausgabe in derselben Zeile bleibt. Verwenden Sie print("") nach der inneren Schleife, um zur nächsten Zeile zu wechseln.
Probier es selbst
let rows = Int(readLine()!)!
let cols = Int(readLine()!)!
// TODO: Schreibe deinen Code unten
// Verwende verschachtelte Schleifen, um ein Multiplikationsgitter auszugeben
// Äußere Schleife: Iteriere durch die Zeilen (1 bis rows)
// Innere Schleife: Iteriere durch die Spalten (1 bis cols)
// Gib das Produkt von Zeile * Spalte aus
// Verwende print(..., terminator: " "), um die Werte in derselben Zeile zu halten
// Verwende print("") nach der inneren Schleife, um zur nächsten Zeile zu springenDiese 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 OperatorenModulo-OperatorZusammengesetzte ZuweisungWiederholung - Einfache MathematikVergleichsoperatoren7Grundlagen der Ein- und Ausgabe
Print-FunktionString-InterpolationReadLine-EingabeTypumwandlungWiederholung - Bis 120Wiederholung - Wahr oder Falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteArgument-LabelsWiederholung - Sigma-FunktionWiederholung - ValidierungsfunktionStandardwerte13Iterieren über Sequenzen
Iterieren über ElementeDie enumerate-MethodeIterieren über Strings Teil 1Iterieren über Strings Teil 22Variablen
Let vs. VarTyp-AnnotationenZahlenStringsBooleansBenennungskonventionenZusammenfassung – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung – Einfache LogikLogische Operatoren Teil 3Ternärer Operator8Rechnungs-Splitter
WillkommensnachrichtEingabe abfragen14Arrays für Fortgeschrittene
Array Slicing Teil 1Array Slicing Teil 2Sequenz-OperatorenDie Contains-Methode3Optionals
Was sind OptionalsUnwrapping mit If LetGuard LetNil-Coalescing-OperatorZusammenfassung – Sicheres Unwrapping6Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher TaschenrechnerSwitch-AnweisungSwitch mit Wertebereichen9Schleifen
For-In-SchleifeWhile-SchleifeRepeat-While-SchleifeBreakContinueWiederholung – FakultätBereiche in SchleifenVerschachtelte SchleifeWiederholung – Dynamische Eingabe