Jeder Entwickler wird schon mal verschachtelte Schleifen (nested loops) genutzt haben. In manchen Fällen muss dabei eine Schleife bei einer bestimmten Bedingung unterbrochen werden. In Swift geschieht dies mit dem Schlüsselwort continue:
1 2 3 4 5 6 7 8 9 10 11 |
for x in 1...3 { for y in 1...3 { if x == y { continue } println("Number: \(x).\(y)") } } |
Wir haben zwei verschachtelte Schleifen und geben den ersten und zweiten Wert aus. Sind beide Werte gleich, wollen wir jedoch nichts ausgeben.
1 2 3 4 5 6 |
Number: 1.2 Number: 1.3 Number: 2.1 Number: 2.3 Number: 3.1 Number: 3.2 |
Mit continue wird die innere Schleife unterbrochen und mit dem nächsten Zähler fortgesetzt. Möchten wir nun statt in der inneren Schleife direkt in der äußeren Schleife fortfahren, können wird das entweder über das Schlüsselwort break erreichen, oder wir nutzen sogenannte Labeled Statements in Swift:
1 2 3 4 5 6 7 8 9 10 11 |
outerloop: for x in 1...3 { innerloop: for y in 1...3 { if x == y { continue outerloop } println("Number: \(x).\(y)") } } |
Da hier die innere Schleife verlassen wird, sieht die Ausgabe anders aus:
1 2 3 |
Number: 2.1 Number: 3.1 Number: 3.2 |
Labeled Statements können gerade bei komplexen Strukturen helfen, die Übersicht zu bewahren und Fehler zu vermeiden.