Les boucles

La boucle while et les pièges classiques

La boucle while et les pièges classiques

Contrairement à for, la boucle while (tant que) répète un bloc d'instructions tant qu'une condition reste vraie, sans connaître à l'avance le nombre de répétitions.

compteur = 5
while compteur > 0:
    print(compteur)
    compteur = compteur - 1
print("Decollage !")

Ce programme affiche 5, 4, 3, 2, 1, puis Decollage !. À chaque tour de boucle, Python vérifie d'abord la condition compteur > 0 : si elle est vraie, il exécute le bloc, puis revient vérifier la condition. Dès qu'elle devient fausse, la boucle s'arrête.

L'erreur classique de la boucle infinie : si tu oublies de modifier la variable testée dans la condition, celle-ci reste toujours vraie, et la boucle ne s'arrête jamais.

compteur = 5
while compteur > 0:
    print(compteur)
    # (Oubli : on ne diminue jamais compteur)

Ici, compteur reste éternellement égal à 5, la condition compteur > 0 est toujours vraie, et le programme tourne indéfiniment (il faut l'arrêter manuellement !). Vérifie toujours que la condition de ta boucle while finira par devenir fausse.

L'erreur classique de l'indentation : en Python, seules les lignes indentées sous le while appartiennent à la boucle. Si une ligne qui devrait être répétée n'est pas indentée au bon niveau, elle sera exécutée au mauvais moment (une seule fois, avant ou après la boucle, au lieu d'à chaque tour).

compteur = 3
while compteur > 0:
    compteur = compteur - 1
print(compteur)  # (mal indente : hors de la boucle, execute une seule fois a la fin)

En résumé : utilise for quand tu connais le nombre de répétitions à l'avance, et while quand tu répètes une action jusqu'à ce qu'une condition change, en vérifiant toujours que cette condition finira par devenir fausse.