Boucles non bornées
Répéter des instructions avec while, suivre l'évolution des variables et comprendre pourquoi une boucle s'arrête.
Nous savons déjà exécuter des instructions et choisir un traitement avec if. Nous allons maintenant apprendre à répéter un traitement tant qu'une condition est vraie.
Pour ce chapitre, il faut savoir utiliser les variables, les opérateurs, les fonctions et les instructions conditionnelles.
I. Définitions
On l'utilise notamment lorsque le nombre de répétitions n'est pas connu à l'avance : redemander une saisie jusqu'à ce qu'elle soit valide, ou poursuivre un calcul jusqu'à atteindre un seuil.
II. Écrire une boucle avec while
A. Syntaxe en Python
En Python, le mot-clé while se lit « tant que ». Il est suivi d'une condition, puis de deux-points :. Le corps est indenté, généralement de quatre espaces.
Les deux instructions indentées sont répétées. L'affichage de "Arrivée", placé après la boucle, n'a lieu qu'une fois.
B. Déroulement de l'exécution
- Le programme initialise les variables nécessaires avant la boucle.
- Il évalue la condition.
- Si elle est vraie, il exécute tout le corps, puis revient tester la condition.
- Si elle est fausse, il passe à la première instruction située après la boucle.
La condition est donc testée avant chaque itération. Elle n'est pas retestée entre les instructions du corps.
La flèche qui revient vers le test représente la répétition.
C. Si la condition est fausse dès le départ
III. Construire une trace d'exécution
Une trace permet de suivre les valeurs des variables et les résultats des tests. Elle doit aussi montrer le dernier test, celui qui provoque la sortie.
Reprenons l'exemple de la distance :
| Test de la condition | Valeur de distance avant le test | Résultat de distance < 12 | Action |
|---|---|---|---|
| 1 | 0 | True | distance devient 4 ; afficher 4 |
| 2 | 4 | True | distance devient 8 ; afficher 8 |
| 3 | 8 | True | distance devient 12 ; afficher 12 |
| 4 | 12 | False | Sortir de la boucle |
Après la sortie, le programme affiche "Arrivée".
IV. Distinguer if et while
if et while utilisent tous les deux une condition, mais ils n'ont pas le même rôle.
| Avec if | Avec while |
|---|---|
| Le bloc est exécuté au plus une fois lorsque le programme atteint cette instruction. | Le bloc peut être répété plusieurs fois. |
| Après le bloc, l'exécution continue à la suite. | Après le corps, l'exécution revient vers le test de la boucle. |
À retenir
Poursuivre avec les exercices sur les boucles non bornées.
Retour en haut ↑