In diesem Artikel lernen Sie, wie Sie while- und while-while-Schleifen in der Swift-Programmierung erstellen.
Im vorherigen Artikel haben wir die For-In-Schleife kennengelernt, mit der eine Reihe von Aufgaben für eine bestimmte Anzahl von Malen ausgeführt werden können. In diesem Artikel lernen Sie, die For-In-Schleife zu verwenden while
und repeat… while
als Alternative zu verwenden, wenn die Anzahl der Iterationen unbekannt ist.
Eine while-Schleife führt eine Reihe von Anweisungen aus, bis eine Bedingung vorliegt false
. Diese Arten von Schleifen werden am besten verwendet, wenn die Anzahl der Iterationen vor Beginn der ersten Iteration nicht bekannt ist. Swift bietet zwei Arten von while-Schleifen:
1. Swift while-Schleife
Diese Schleife wertet ihren Zustand zu Beginn jedes Durchlaufs durch die Schleife aus.
Die Syntax der while-Schleife lautet:
while (TestExpression) ( // statements )
Wie funktioniert die while-Schleife?
Das TestExpression
ist ein boolescher Ausdruck.
Wenn das TestExpression
ausgewertet wird true
,
- Anweisungen innerhalb der while-Schleife werden ausgeführt.
- und das
TestExpression
wird nochmal ausgewertet.
Dieser Vorgang wird fortgesetzt, bis der TestExpression
ausgewertet wird false
. Wenn das TestExpression
ausgewertet wird, false
wird die while-Schleife beendet.
Flussdiagramm der while-Schleife
Beispiel 1: While-Schleife
var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true while (currentLevel <= finalLevel) ( //play game if gameCompleted ( print("You have passed level (currentLevel)") currentLevel += 1 ) ) print("outside of while loop")
Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:
Sie haben Level 0 bestanden Sie haben Level 1 bestanden Sie haben Level 2 bestanden Sie haben Level 3 bestanden Sie haben Level 4 bestanden Sie haben Level 5 außerhalb der while-Schleife bestanden
Im obigen Programm werden die Variablen currentLevel und finalLevel auf 0 und die Konstante gameCompleted auf initialisiert true
.
In jeder Iteration der while-Schleife wird die Bedingung überprüft currentLevel <= finalLevel
. Wenn die Bedingung zurückgegeben wird true
, werden Anweisungen innerhalb der while-Schleife ausgeführt, andernfalls wird die Schleife beendet.
Wiederholung | Bedingung (currentLevel <= finalLevel) | Ausgabe |
---|---|---|
1 | 0 <= 5 (wahr) | Du hast Level 0 bestanden |
2 | 1 <= 5 (wahr) | Du hast Level 1 bestanden |
3 | 2 <= 5 (wahr) | Du hast Level 2 bestanden |
4 | 3 <= 5 (wahr) | Du hast Level 3 bestanden |
5 | 4 <= 5 (wahr) | Du hast Level 4 bestanden |
6 | 5 <= 5 (wahr) | Du hast Level 5 bestanden |
7 | 6 <= 5 (falsch) | außerhalb der while-Schleife |
2. Wiederholen Sie dies während der Schleife
Diese Schleife wertet ihren Zustand am Ende jedes Durchlaufs durch die Schleife aus. Die Wiederholung… while-Schleife ähnelt der while-Schleife mit einem Schlüsseldifferenz. Der Wiederholungskörper… while-Schleife wird einmal ausgeführt, bevor der Testausdruck überprüft wird.
Die Syntax von repeat… while-Schleife lautet:
repeat ( // statements… ) while (testExpression)
Wie wiederholen … während die Schleife funktioniert?
Der Wiederholungskörper… while-Schleife wird einmal ausgeführt (bevor der Testausdruck überprüft wird). Nur dann wird testExpression überprüft.
Wenn testExpression als true ausgewertet wird, werden Anweisungen im Rumpf der Schleife ausgeführt und testExpression erneut ausgewertet. Dieser Vorgang wird fortgesetzt, bis testExpression auf ausgewertet wird false
.
Wenn testExpression aktiviert ist false
, wird die Schleife repeat… while beendet.
Flussdiagramm der Wiederholung… während der Schleife
Beispiel 2: Wiederholen Sie die while-Schleife
var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true repeat ( //play game if gameCompleted ( print("You have passed level (currentLevel)") currentLevel += 1 ) ) while (currentLevel <= finalLevel) print("outside of repeat while loop")
Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:
Sie haben Level 0 bestanden. Sie haben Level 1 bestanden. Sie haben Level 2 bestanden. Sie haben Level 3 bestanden. Sie haben Level 4 bestanden. Sie haben Level 5 außerhalb der Wiederholungsschleife bestanden
Im obigen Beispiel werden die Anweisungen in der Schleife zum ersten Mal ausgeführt. Und für die nächste Iteration wird der Zustand überprüft currentLevel <= finalLevel
.
Wenn die Bedingung zurückgegeben wird true
, werden Anweisungen innerhalb der while-Schleife ausgeführt, andernfalls wird die Schleife beendet.
Wiederholung | Bedingung (currentLevel <= finalLevel) | Ausgabe |
---|---|---|
1 | 0 <= 5 (wahr) | Du hast Level 0 bestanden |
2 | 1 <= 5 (wahr) | Du hast Level 1 bestanden |
3 | 2 <= 5 (wahr) | Du hast Level 2 bestanden |
4 | 3 <= 5 (wahr) | Du hast Level 3 bestanden |
5 | 4 <= 5 (wahr) | Du hast Level 4 bestanden |
6 | 5 <= 5 (wahr) | Du hast Level 5 bestanden |
7 | 6 <= 5 (falsch) | außerhalb der Wiederholung während Schleife |
Obwohl beide while
und die repeat while
Schleife dieselben Ausführungsschritte haben, wird die Bedingung currentLevel <= finalLevel
für die repeat while
Schleife erst ausgeführt, nachdem die darin enthaltenen Anweisungen ausgeführt wurden.
In while
wird die Bedingung jedoch zu Beginn überprüft, bevor die darin enthaltenen Anweisungen ausgeführt werden.
3. Endlos während der Schleife
Wenn der Testausdruck niemals ausgewertet wird, false
wird der Body von while
und die repeat… while
Schleife unendlich oft ausgeführt.
Beispiel 3: Endlos während der Schleife
while (true) ( print("Hello, World!") )
repeat ( print("Hello, World!") ) while (true)
Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:
Hallo Welt! Hallo Welt!…
Wenn Sie das Programm ausführen, führt beide Schleife die print("Hello, World!")
Anweisung unendlich oft aus. Sie können also eine kontinuierliche Ausgabe sehen. Hallo, Welt! in der Konsole.