English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Boucles while et repeat...while Swift

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 :

1Boucle while Swift

Cette boucle évalue sa condition au début de chaque passage dans la boucle.

La syntaxe de la boucle while est :

while (TestExpression) {
    // Instructions
}

Comment fonctionne la boucle while ?

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.

Diagramme de flux de la boucle while

示例1Boucle while

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.

Si la condition retourne true, les instructions à l'intérieur de la boucle while sont exécutées, sinon la boucle se termine.
ItérationCondition (currentLevel <= finalLevel)Sortie
10 <= 5 (true)Tu as réussi le niveau 0
21 <= 5 (true)Tu as réussi le niveau 1
32 <= 5 (true)Tu as réussi le niveau 2
43 <= 5 (true)Tu as réussi le niveau 3
54 <= 5 (true)Tu as réussi le niveau 4
65 <= 5 (true)Tu as réussi le niveau 5
76 <= 5 (false)En dehors de la boucle while

2Boucle while répétée

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
    ...
}

Comment fonctionne la boucle repeat ... while ?

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.

Diagramme de flux de la boucle repeat ... while

示例2Boucle repeat ... while

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.

Si la condition retourne true, les instructions à l'intérieur de la boucle while sont exécutées, sinon la boucle se termine.
ItérationCondition (currentLevel <= finalLevel)Output
10 <= 5 (true)Tu as réussi le niveau 0
21 <= 5 (true)Tu as réussi le niveau 1
32 <= 5 (true)Tu as réussi le niveau 2
43 <= 5 (true)Tu as réussi le niveau 3
54 <= 5 (true)Tu as réussi le niveau 4
65 <= 5 (true)Tu as réussi le niveau 5
76 <= 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条件是在开始执行条件之前先检查的。

3无限while循环

如果测试表达式永远不会计算为false,则while的主体和repeat..while循环被执行无数次。

示例3无限while循环

while (true) {
   print("Hello, World!")
}

 

repeat {
   print("Hello, World!")
} while (true)

运行该程序时,输出为:

Hello, World!
Hello, World!
.
.
.

当您运行程序时,两个循环都将无限次执行语句 print("Hello, World!") 。因此,您可以在控制台中看到连续的输出"Hello, World!"