Verschachtelte Schleifen verlassen
Verwenden Sie Labels, um mehrere Schle Ebenen zu verlassen.
Verschachtelte Schleifen verlassen ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.
Das Problem verschachtelter Schleifen
Ein gewöhnliches break innerhalb einer verschachtelten Schleife beendet nur die innere Schleife, während die äußere weiterläuft.
for i in 1...3 {
for j in 1...3 {
if j == 2 { break }
print(i, j)
}
}Beschriftetes break löst das Problem
Versehen Sie die äußere Schleife mit einem Label und verwenden Sie break outer, um beide Schleifen gleichzeitig zu beenden.
outer: for i in 1...3 {
for j in 1...3 {
if i == 2 && j == 2 { break outer }
print(i, j)
}
}
print("escaped")Ein zweidimensionales Raster durchsuchen
Ein beschriftetes break eignet sich ideal, um eine zweidimensionale Suche zu beenden, sobald das Ziel gefunden wurde.
let grid = [[1, 2, 3], [4, 5, 6]]
var position = (-1, -1)
find: for r in 0..<grid.count {
for c in 0..<grid[r].count {
if grid[r][c] == 5 {
position = (r, c)
break find
}
}
}
print(position)Ohne Labels: ein Flag
Eine Alternative ohne Labels ist ein boolesches Flag, aber diese Lösung ist ausführlicher und fehleranfälliger.
var stop = false
for i in 1...3 {
for j in 1...3 {
if i + j == 4 { stop = true; break }
print(i, j)
}
if stop { break }
}Labels sind übersichtlicher
Im Vergleich zu Flags drückt ein beschriftetes break die Absicht direkt aus und vermeidet zusätzliche Prüfungen nach der inneren Schleife.
outer: for i in 1...3 {
for j in 1...3 {
if i + j == 4 { break outer }
print(i, j)
}
}Dreifache Verschachtelung
Labels lassen sich auf drei oder mehr Ebenen anwenden. Sprechen Sie einfach die Schleife an, die Sie verlassen möchten.
top: for a in 1...2 {
for b in 1...2 {
for c in 1...2 {
if c == 2 { break top }
print(a, b, c)
}
}
}Beschriftetes continue in Verschachtelungen
Verwenden Sie continue label, um von einer tief verschachtelten Stelle zum nächsten Durchlauf einer äußeren Schleife zu springen.
rows: for r in 1...3 {
for c in 1...3 {
if c == 2 { continue rows }
print(r, c)
}
}Beides kombinieren
Sie können beschriftetes break und continue in derselben verschachtelten Struktur kombinieren und so eine präzise Steuerung erreichen.
scan: for i in 1...3 {
for j in 1...3 {
if j == 1 { continue }
if i == 3 { break scan }
print(i, j)
}
}Leistung durch vorzeitigen Ausstieg
Wenn Sie abbrechen, sobald die Antwort gefunden wurde, vermeiden Sie bei großen Datenmengen unnötige Durchläufe.
let data = Array(1...100)
var firstBig = -1
loop: for chunk in stride(from: 0, to: data.count, by: 10) {
for k in chunk..<min(chunk + 10, data.count) {
if data[k] > 25 {
firstBig = data[k]
break loop
}
}
}
print(firstBig)Aus einer Funktion zurückkehren
Innerhalb einer Funktion ist return eine weitere saubere Möglichkeit, alle Schleifen gleichzeitig zu verlassen.
func findPair(_ target: Int) -> (Int, Int)? {
for i in 1...5 {
for j in 1...5 {
if i * j == target { return (i, j) }
}
}
return nil
}
print(findPair(12) ?? (-1, -1))Den passenden Ansatz wählen
Verwenden Sie ein beschriftetes break, wenn Sie verschachtelte Schleifen an Ort und Stelle verlassen möchten, oder return, wenn Sie sich innerhalb einer Funktion befinden und diese vollständig verlassen wollen.
outer: for x in 1...3 {
for y in 1...3 {
if x * y >= 4 { break outer }
print(x, y)
}
}Kurzer Test
Testen Sie die Steuerung verschachtelter Schleifen.
Zusammenfassung
Ein gewöhnliches break beendet nur die innerste Schleife. Versehen Sie die äußere Schleife mit einem Label und verwenden Sie break label, um alle Ebenen gleichzeitig zu verlassen. Das ist übersichtlicher als ein boolesches Flag. Innerhalb einer Funktion beendet auch return alle Schleifen.
outer: for i in 1...3 {
for j in 1...3 {
if j == 2 { break outer }
print(i, j)
}
}Häufig gestellte Fragen
Ist die Lektion „Verschachtelte Schleifen verlassen“ kostenlos?
Ja — der vollständige Text von „Verschachtelte Schleifen verlassen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Verschachtelte Schleifen verlassen“?
Verwenden Sie Labels, um mehrere Schle Ebenen zu verlassen. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Swift Academy zu starten?
Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Verschachtelte Schleifen verlassen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?
Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Grundlagen von break und continue
- Markierte Anweisungen
- Verschachtelte Schleifen verlassen
- Schleifensteuerung im switch-Kontext