LyCode Lab

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.

Avancer tant que le chemin est libre
while chemin_libre("devant"):
    avancer()
Avancer jusqu'à l'arrivée
while not a_larrivee():
    avancer()

Boucle bornée ou non bornée ?

Boucle bornéeBoucle non bornée
Quand ?On connaît le nombre de toursOn connaît la condition d'arrêt
Blocrépéter ... fois / compter avecrépéter tant que / jusqu'à
Pythonfor ... in range(...)while condition
ExempleFaire 4 pasAvancer 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.

Mesurer la longueur du couloir
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.

Passer à l'énigme : Le long couloir