Chapitre 4 : Boucles non bornées, conditions d'arrêt
Répéter jusqu'à : les boucles non bornées
Dans un couloir dont tu ne connais pas la longueur, « avancer 6 fois » ne suffit plus. Il faut dire à Pixel : « avance tant que le chemin est libre ». C'est une boucle non bornée : le nombre de tours dépend d'une condition, pas d'un nombre fixé à l'avance.
Au programme de SNT : Boucles non bornées. Écrire et développer des programmes pour répondre à des problèmes.
Répéter tant que, répéter jusqu'à
Le bloc de boucle a deux formes. « répéter tant que condition » continue tant que la condition est vraie. « répéter jusqu'à condition » continue jusqu'à ce que la condition devienne vraie. La condition est testée avant chaque tour.
while chemin_libre("devant"):
avancer()while not a_larrivee():
avancer()Boucle bornée ou non bornée ?
| Boucle bornée | Boucle non bornée | |
|---|---|---|
| Quand ? | On connaît le nombre de tours | On connaît la condition d'arrêt |
| Bloc | répéter ... fois / compter avec | répéter tant que / jusqu'à |
| Python | for ... in range(...) | while condition |
| Exemple | Faire 4 pas | Avancer jusqu'au mur |
Attention aux boucles infinies
Avant de lancer une boucle non bornée, demande-toi : qu'est-ce qui, dans la boucle, finira par rendre la condition fausse ? Ici, c'est le déplacement de Pixel qui le rapproche du mur.
Compter dans une boucle non bornée
On ne connaît pas le nombre de tours, mais on peut le compter avec une variable : on la met à 0 avant la boucle, et on lui ajoute 1 à chaque tour.
pas = 0
while chemin_libre("devant"):
avancer()
pas = pas + 1
print(pas)À toi de jouer : Exercice guidé
La boucle « répéter tant que le chemin est libre devant » est posée, mais vide. Place dedans l'instruction qui fait avancer Pixel. Le programme doit marcher pour des couloirs de longueurs différentes.