Swift while et répétition while Loop (avec exemples)

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 whileet repeat… whilecomme 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 TestExpressionest une expression booléenne.

Si le TestExpressionest évalué à true,

  • les instructions à l'intérieur de la boucle while sont exécutées.
  • et le TestExpressionest à nouveau évalué.

Ce processus se poursuit jusqu'à ce que le TestExpressionsoit é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.

Étapes d'exécution
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.

Étapes d'exécution
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 whileet repeat whileloop aient les mêmes étapes d'exécution, la condition currentLevel <= finalLevel sur la repeat whileboucle 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 whileet repeat… whileest 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.

Articles intéressants...