Swift while et répétition while Loop

Dans l’article précédent, nous avons appris à propos de 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 à 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 la 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 TestExpression est évalué à false . Si la TestExpression évalue à false , tandis que la boucle est terminée.


Organigramme de la boucle while

Swift while loop flowchart


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, la variableniveau actueletfinalLevelest initialisé à 0 et constantjeuComplétéest initialisé à true .

À chaque itération de la boucle while, il vérifie la condition currentLevel <= finalLevel . Si la condition revient 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 (true) Vous avez passé le niveau 0
2 1 <= 5 (true) Vous avez passé le niveau 1
3 2 <= 5 (true) Vous avez passé le niveau 2
4 3 <= 5 (true) Vous avez passé le niveau 3
5 4 <= 5 (true) Vous avez passé le niveau 4
6 5 <= 5 (true) Vous avez passé le niveau 5
7 6 <= 5 (false) 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 la boucle repeat.. while 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). Seulement à ce moment-là,testExpressionest vérifié.

SitestExpressionest évalué àvrai, les instructions à l’intérieur du corps de la boucle sont exécutées, ettestExpressionest à nouveau évalué. Ce processus se poursuit jusqu’à ce quetestExpressionest évalué à false .

QuandtestExpressionest false , la boucle repeat.. while se termine.


Organigramme de répétition … pendant la boucle

Swift repeat..while loop flowchart


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 revient 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 (true) Vous avez passé le niveau 0
2 1 <= 5 (true) Vous avez passé le niveau 1
3 2 <= 5 (true) Vous avez passé le niveau 2
4 3 <= 5 (true) Vous avez passé le niveau 3
5 4 <= 5 (true) Vous avez passé le niveau 4
6 5 <= 5 (true) Vous avez passé le niveau 5
7 6 <= 5 (false) en dehors de la répétition en boucle

Bien que les deux while et repeat while boucle ont les mêmes étapes d’exécution, la condition currentLevel <= finalLevel  sur repeat while loop n’est exécutée qu’après avoir exécuté les instructions qu’elle contient.

Mais en 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 while et repeat..while loop est exécutée 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 s’exécutent print("Hello, World!")