English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans cet article, vous apprendrez à créer des boucles while et repeat...while en programmation Swift.
Dans l'article précédent, nous avons apprisPour-Boucle inPour exécuter un ensemble de tâches une certaine nombre de fois. Dans cet article, vous apprendrez à utiliser while et repeat..while comme for lorsque le nombre d'itérations est inconnu.-Remplacement de la boucle in
La boucle while exécute un ensemble d'instructions jusqu'à ce que la condition devienne faux. Lorsque le nombre d'itérations est inconnu avant le début de la première itération, il est préférable d'utiliser ce type de boucle. Swift fournit deux types de boucles while :
Cette boucle évalue sa condition au début de chaque passage dans la boucle.
La syntaxe de la boucle while est :
while (TestExpression) { // Instructions }
TestExpression est une expression booléenne.
Si TestExpression est calculé comme true,
Les instructions à l'intérieur de la boucle while seront exécutées.
Et TestExpression est recalculé.
Continuez ce processus jusqu'à ce que TestExpression soit calculé comme faux. Si le résultat de TestExpression est faux, la boucle while est terminée.
var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true while (currentLevel <= finalLevel) { //Jouer à la partie if (gameCompleted) print("Tu as réussi le niveau (currentLevel)") currentLevel += 1 } } print("En dehors de la boucle while")
运行该程序时,输出为:
print("En dehors de la boucle repeat while") Tu as réussi le niveau 1 Tu as réussi le niveau 2 Tu as réussi le niveau 3 Tu as réussi le niveau 4 Tu as réussi le niveau 5 En dehors de la boucle while
Dans le programme ci-dessus, les variables currentLevel et finalLevel sont initialisées à 0, et la constante gameCompleted est initialisée à true.
À chaque itération de la boucle while, elle vérifie la condition de jugement currentLevel <= finalLevel. Si la condition retourne true, les instructions à l'intérieur de la boucle while sont continues, sinon la boucle est terminée.
Itération | Condition (currentLevel <= finalLevel) | Sortie |
---|---|---|
1 | 0 <= 5 (true) | Tu as réussi le niveau 0 |
2 | 1 <= 5 (true) | Tu as réussi le niveau 1 |
3 | 2 <= 5 (true) | Tu as réussi le niveau 2 |
4 | 3 <= 5 (true) | Tu as réussi le niveau 3 |
5 | 4 <= 5 (true) | Tu as réussi le niveau 4 |
6 | 5 <= 5 (true) | Tu as réussi le niveau 5 |
7 | 6 <= 5 (false) | En dehors de la boucle while |
Cette boucle évalue sa condition à la fin de chaque itération. La boucle repeat ... while est similaire à la boucle while, mais avec une distinction clé. Avant de vérifier l'expression de test (testExpression), l'objet principal de la boucle repeat ... while est exécuté une fois.
La syntaxe de la boucle repeat..while est :
repeat { // instructions ... }
Le corps de la boucle repeat ... while est exécuté une fois (avant de vérifier l'expression de test). Seulement ainsi, l'expression de test est vérifiée.
Si testExpression est calculé comme true, les instructions à l'intérieur de la boucle sont exécutées, puis testExpression est recalculé. Cela continue jusqu'à ce que testExpression soit calculé comme false.
Lorsque testExpression est false, la boucle repeat..while se termine.
var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true repeat { //Jouer à la partie if (gameCompleted) print("Tu as réussi le niveau (currentLevel)") currentLevel += 1 } while (currentLevel <= finalLevel) }
运行该程序时,输出为:
print("En dehors de la boucle repeat while") Tu as réussi le niveau 1 Tu as réussi le niveau 2 Tu as réussi le niveau 3 Tu as réussi le niveau 4 Tu as réussi le niveau 5 Tu as réussi le niveau 0
En dehors de la boucle repeat while
Dans l'exemple ci-dessus, les instructions à l'intérieur de la boucle sont exécutées pour la première fois. Pour l'itération suivante, elle vérifie la condition currentLevel <= finalLevel.
Itération | Condition (currentLevel <= finalLevel) | Output |
---|---|---|
1 | 0 <= 5 (true) | Tu as réussi le niveau 0 |
2 | 1 <= 5 (true) | Tu as réussi le niveau 1 |
3 | 2 <= 5 (true) | Tu as réussi le niveau 2 |
4 | 3 <= 5 (true) | Tu as réussi le niveau 3 |
5 | 4 <= 5 (true) | Tu as réussi le niveau 4 |
6 | 5 <= 5 (true) | Tu as réussi le niveau 5 |
7 | 6 <= 5 (false) | En dehors de la boucle repeat while |
Bien que les boucles repeat et repeat while aient les mêmes étapes d'exécution, la condition currentLevel <= finalLevel dans la boucle repeat... while n'est calculée qu'après l'exécution des instructions à l'intérieur.
但是在中while,currentLevel <= finalLevel条件是在开始执行条件之前先检查的。
如果测试表达式永远不会计算为false,则while的主体和repeat..while循环被执行无数次。
while (true) { print("Hello, World!") }
repeat { print("Hello, World!") } while (true)
运行该程序时,输出为:
Hello, World! Hello, World! . . .
当您运行程序时,两个循环都将无限次执行语句 print("Hello, World!") 。因此,您可以在控制台中看到连续的输出