Dans cet article, vous apprendrez à créer des boucles while et répéter… while en programmation Swift.
Dans l'article précédent, nous avons découvert la boucle for-in pour exécuter un ensemble de tâches un certain nombre de fois. Dans cet article, vous apprendrez à utiliser while
et repeat… while
comme alternative de la boucle for-in lorsque le nombre d'itérations est inconnu.
Une boucle while exécute un ensemble d'instructions jusqu'à ce qu'une condition devienne false
. Ces types de boucles sont mieux utilisés lorsque le nombre d'itérations n'est pas connu avant le début de la première itération. Swift propose deux types de boucles while:
1. Swift while Loop
Cette boucle évalue sa condition au début de chaque passage dans la boucle.
La syntaxe de la boucle while est:
while (TestExpression) ( // statements )
Comment fonctionne la boucle while?
Le TestExpression
est une expression booléenne.
Si le TestExpression
est évalué à true
,
- les instructions à l'intérieur de la boucle while sont exécutées.
- et le
TestExpression
est à nouveau évalué.
Ce processus se poursuit jusqu'à ce que le TestExpression
soit évalué à false
. Si l ' TestExpression
évalue à false
, la boucle while est terminée.
Organigramme de la boucle while
Exemple 1: boucle While
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")
Lorsque vous exécutez le programme, la sortie sera:
Vous avez passé le niveau 0 Vous avez passé le niveau 1 Vous avez passé le niveau 2 Vous avez passé le niveau 3 Vous avez passé le niveau 4 Vous avez passé 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, il vérifie la condition currentLevel <= finalLevel
. Si la condition retourne true
, les instructions à l'intérieur de la boucle while sont exécutées sinon la boucle se termine.
Itération | Condition (currentLevel <= finalLevel) | Production |
---|---|---|
1 | 0 <= 5 (vrai) | Vous avez passé le niveau 0 |
2 | 1 <= 5 (vrai) | Vous avez passé le niveau 1 |
3 | 2 <= 5 (vrai) | Vous avez passé le niveau 2 |
4 | 3 <= 5 (vrai) | Vous avez passé le niveau 3 |
5 | 4 <= 5 (vrai) | Vous avez passé le niveau 4 |
6 | 5 <= 5 (vrai) | Vous avez passé le niveau 5 |
sept | 6 <= 5 (faux) | en dehors de la boucle while |
2. Répéter tout en boucle
Cette boucle évalue sa condition à la fin de chaque passage dans la boucle. La boucle repeat… while est similaire à la boucle while avec une différence de clé. Le corps de la boucle repeat… while est exécuté une fois avant que l'expression de test ne soit vérifiée.
La syntaxe de repeat… while loop est:
repeat ( // statements… ) while (testExpression)
Comment répéter… pendant que la boucle fonctionne?
Le corps de la boucle repeat… while est exécuté une fois (avant de vérifier l'expression de test). Ce n'est qu'alors que testExpression est vérifié.
Si testExpression est évalué à true, les instructions à l'intérieur du corps de la boucle sont exécutées et testExpression est à nouveau évaluée. Ce processus se poursuit jusqu'à ce que testExpression soit évalué false
.
Lorsque testExpression est false
, la boucle repeat… while se termine.
Organigramme de répétition… en boucle
Exemple 2: Répéter en boucle
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")
Lorsque vous exécutez le programme, la sortie sera:
Vous avez passé le niveau 0 Vous avez passé le niveau 1 Vous avez passé le niveau 2 Vous avez passé le niveau 3 Vous avez passé le niveau 4 Vous avez passé le niveau 5 en dehors de la répétition en boucle
Dans l'exemple ci-dessus, pour la première fois, les instructions à l'intérieur de la boucle s'exécutent. Et pour la prochaine itération, il vérifie la condition currentLevel <= finalLevel
.
Si la condition retourne true
, les instructions à l'intérieur de la boucle while sont exécutées sinon la boucle se termine.
Itération | Condition (currentLevel <= finalLevel) | Production |
---|---|---|
1 | 0 <= 5 (vrai) | Vous avez passé le niveau 0 |
2 | 1 <= 5 (vrai) | Vous avez passé le niveau 1 |
3 | 2 <= 5 (vrai) | Vous avez passé le niveau 2 |
4 | 3 <= 5 (vrai) | Vous avez passé le niveau 3 |
5 | 4 <= 5 (vrai) | Vous avez passé le niveau 4 |
6 | 5 <= 5 (vrai) | Vous avez passé le niveau 5 |
sept | 6 <= 5 (faux) | en dehors de la répétition en boucle |
Bien que les deux while
et repeat while
loop aient les mêmes étapes d'exécution, la condition currentLevel <= finalLevel
sur la repeat while
boucle n'est exécutée qu'après avoir exécuté les instructions qu'elle contient.
Mais dans while
, la condition est vérifiée au début avant d'exécuter les instructions qu'elle contient.
3. Boucle while infinie
Si l'expression de test n'évalue jamais à false
, le corps de la boucle while
et repeat… while
est exécuté un nombre infini de fois.
Exemple 3: Boucle while infinie
while (true) ( print("Hello, World!") )
repeat ( print("Hello, World!") ) while (true)
Lorsque vous exécutez le programme, la sortie sera:
Bonjour le monde! Bonjour le monde!…
Lorsque vous exécutez le programme, les deux boucles exécutent l' print("Hello, World!")
instruction un nombre infini de fois. Ainsi, vous pouvez voir la sortie continue Hello, World! dans la console.