Une boucle avec une condition. Instruction while
En étudiant la boucle
for
, nous avons dit que si le nombre de répétitions de n'importe quelle action est connu, alors vous pouvez raccourcir le programme en utilisant l'opérateur de boucle
for
. Mais que se passe-t-il si le nombre de répétitions est inconnu ? Et cela arrive assez souvent.
Exemple
En se souvenant de la traduction d'un nombre d'un système de nombres décimaux à un autre, nous devons diviser le nombre (puis le résultat de la division) par la base du système de nombres jusqu'à ce que nous obtenions zéro dans la réponse. Combien de fois nous partagerons est inconnu. Et il existe de nombreux programmes qui implémentent un tel algorithme.
Comment pouvons-nous implémenter l'algorithme si nous ne connaissons pas le nombre exact d'itérations ?
Pour de tels cas en programmation, il existe une instruction de boucle avec une condition.
Dans le langage de programmation Python, une instruction de boucle conditionnelle commence par le mot
while
et a la structure suivante.
tandis que <condition> :
corps de boucle
Comme nous le savons déjà :
- une condition est une expression dont le résultat peut être vrai ou faux (comme dans une instruction conditionnelle) ;
- le corps de la boucle correspond aux commandes qui doivent être répétées, elles sont indentées.
Comment fonctionne l'opérateur ?
1. Tout d'abord, le programme évalue la condition entre parenthèses après le mot while
. Si la condition est remplie (true), alors le programme exécute la ou les instructions contenues dans le corps de la boucle.
2. Une fois l'exécution du corps de la boucle terminée, le programme revient pour vérifier la condition et la vérifie à nouveau.
3. Ces actions (vérification de la condition - exécution du corps de la boucle) sont répétées jusqu'à ce que la condition devienne fausse.
4. Si la condition n'est pas immédiatement remplie (faux) lors de la première exécution de cette instruction, alors le programme n'exécutera jamais le corps de la boucle.
En analysant le travail de cet opérateur, il devrait devenir clair que le corps de la boucle doit contenir un opérateur qui affecte la condition.
Par exemple, dans une boucle, la valeur d'une variable utilisée dans une condition peut être incrémentée.
Un exemple de programme que nous appellerons "Silent count".
Faisons en sorte que le programme compte à notre place, par exemple, jusqu'à 10.
Le programme doit afficher les phrases "Start
" et "Terminer
", et entre ces actions afficher les nombres en cours de calcul.
Par exemple, comme ceci :
Commencer
1 2 3 4 5 6 7 8 9 10
Terminer
Un programme utilisant une boucle while
ressemblerait à ceci :
print("Démarrer")
je = 1
alors que je <= 10 :
print(i, end=" ")
i += 1 # opérateur qui affecte le changement d'une variable,
# debout dans l'état
print() # déplace le curseur sur une nouvelle ligne
print("Terminer")
Dans ce programme, nous attribuons une valeur à la variable i = 1
- le point de départ.
De plus, tant que la valeur de la variable i
n'est pas supérieure (c'est-à-dire inférieure ou égale) à la valeur dont nous avons besoin, nous :
1. afficher la valeur de la variable i
;
2. augmenter la valeur de la variable i
de 1 - cet opérateur affecte la valeur de la condition entre parenthèses. La variable i
est incrémentée, ce qui signifie qu'à un moment donné la condition i <= 10
deviendra fausse. Cela se produira lorsque i
devient égal à 11. Dans ce cas, le corps de la boucle ne sera plus exécuté et le programme exécutera l'instruction suivante après la boucle, c'est-à-dire print()
et print("Terminer")
.