English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Artikel werden Sie lernen, wie man in der Swift-Programmierung while und repeat... while-Zyklen erstellt.
Im letzten Artikel haben wir gelernt,for-in-ZyklusUm eine Gruppe von Aufgaben mit einer bestimmten Anzahl von Ausführungen auszuführen. In diesem Artikel werden Sie lernen, wie man in Fällen, in denen die Anzahl der Iterationen unbekannt ist, while und repeat..while als for verwendet.-Als Ersatz für den in-Zyklus.
Der while-Zyklus führt eine Gruppe von Anweisungen aus, bis die Bedingung auf false wird. Wenn die Anzahl der Iterationen vor dem ersten Durchlauf unbekannt ist, ist es am besten, diesen Typ von Zyklus zu verwenden. Swift bietet zwei Arten von while-Zyklen:
Dieser Zyklus bewertet seine Bedingung am Anfang jedes Zyklus durch.
Die Syntax des while-Zyklus ist:
while (TestExpression) { // Anweisung }
TestExpression ist ein boolescher Ausdruck.
Wenn der TestExpression auf true berechnet wird,
Die Anweisungen im while-Zyklus werden ausgeführt.
und der TestExpression wird erneut berechnet.
Führen Sie diesen Prozess fort, bis der TestExpression auf false berechnet wird. Wenn der TestExpression auf false berechnet wird, wird der while-Zyklus beendet.
var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true while (currentLevel <= finalLevel) { //Spiele das Spiel if (gameCompleted) { print("Du hast Level \(currentLevel) durchgeschafft") currentLevel += 1 } } print("Außerhalb des while-Zyklus")
The output when running the program is:
Du hast Level 0 durchgeschafft Du hast das Level durchgeschafft 1 Du hast das Level durchgeschafft 2 Du hast das Level durchgeschafft 3 Du hast das Level durchgeschafft 4 Du hast das Level durchgeschafft 5 Außerhalb des while-Zyklus
In dem obigen Programm werden die Variablen currentLevel und finalLevel auf 0 initialisiert und das Konstante gameCompleted auf true.
Bei jeder Iteration des while-Zyklus überprüft er die Bedingung currentLevel <= finalLevel. Wenn die Bedingung true zurückgibt, wird der while-Zyklus fortgesetzt, sonst wird der Zyklus beendet.
Iteration | Bedingung (currentLevel <= finalLevel) | Ausgabe |
---|---|---|
1 | 0 <= 5 (true) | Du hast Level 0 durchgeschafft |
2 | 1 <= 5 (true) | Du hast das Level durchgeschafft 1 |
3 | 2 <= 5 (true) | Du hast das Level durchgeschafft 2 |
4 | 3 <= 5 (true) | Du hast das Level durchgeschafft 3 |
5 | 4 <= 5 (true) | Du hast das Level durchgeschafft 4 |
6 | 5 <= 5 (true) | Du hast das Level durchgeschafft 5 |
7 | 6 <= 5 (false) | Außerhalb des while-Zyklus |
Dieser Zyklus bewertet seine Bedingung am Ende jedes Zyklus. Der repeat ... while-Zyklus ist ähnlich wie der while-Zyklus, aber es gibt einen entscheidenden Unterschied. Bevor der Testausdruck (testExpression) überprüft wird, wird der Hauptteil des repeat ... while-Zyklus einmal ausgeführt.
Die Syntax des repeat..while-Schleifens ist:
repeat { // Anweisungen ... } while (testExpression)
Der Körper des repeat ... while-Schleifens wird einmal ausgeführt (vor der Überprüfung des Testausdrucks). Nur dann wird der Testausdruck überprüft.
Wenn testExpression als true berechnet wird, werden die Anweisungen im Schleifenkörper ausgeführt und testExpression wird erneut berechnet. Dies wird fortgesetzt, bis testExpression als false berechnet wird.
Wenn testExpression false ist, wird der repeat..while-Schleifen beendet.
var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true repeat { //Spiele das Spiel if (gameCompleted) { print("Du hast Level \(currentLevel) durchgeschafft") currentLevel += 1 } } while (currentLevel <= finalLevel) print("Außerhalb des repeat-while-Schleifens")
The output when running the program is:
Du hast Level 0 durchgeschafft Du hast das Level durchgeschafft 1 Du hast das Level durchgeschafft 2 Du hast das Level durchgeschafft 3 Du hast das Level durchgeschafft 4 Du hast das Level durchgeschafft 5 außerhalb des repeat-while-Schleifens
Im obigen Beispiel werden die Anweisungen im Schleifenkörper zum ersten Mal ausgeführt. Für die nächste Iteration überprüft es die Bedingung currentLevel <= finalLevel.
Führe die Anweisungen im while-Schleifen aus, wenn die Bedingung true zurückgibt,否则循环终止。
Iteration | Bedingung (currentLevel <= finalLevel) | Ausgabe |
---|---|---|
1 | 0 <= 5 (true) | Du hast Level 0 durchgeschafft |
2 | 1 <= 5 (true) | Du hast das Level durchgeschafft 1 |
3 | 2 <= 5 (true) | Du hast das Level durchgeschafft 2 |
4 | 3 <= 5 (true) | Du hast das Level durchgeschafft 3 |
5 | 4 <= 5 (true) | Du hast das Level durchgeschafft 4 |
6 | 5 <= 5 (true) | Du hast das Level durchgeschafft 5 |
7 | 6 <= 5 (false) | Außerhalb des repeat-while-Schleifens |
Obwohl die repeat- und repeat-while-Schleifen die gleichen Ausführungsschritte haben, wird die Bedingung currentLevel <= finalLevel im repeat... while-Schleifen nur berechnet, wenn die Anweisungen darin ausgeführt werden.
But in the while, the condition currentLevel <= finalLevel is checked before the execution condition starts.
If the test expression will never be calculated as false, the body of the while loop and the repeat..while loop are executed infinitely.
while (true) { print("Hello, World!") }
repeat { print("Hello, World!") }
The output when running the program is:
Hello, World! Hello, World! . . .
When you run the program, both loops will execute the statement print("Hello, World!") infinitely. Therefore, you can see the continuous output in the console