Aller au contenu

Boucles non bornées

L'instruction while

La boucle non bornée (ou boucle while) permet de répéter un bloc d'instructions tant qu'une expression (booléenne) est vraie.

La syntaxe de la boucle while est :

while expression:
    bloc d_instructions à répéter
expression a pour valeur True ou False.

Le bloc d'instructions est à indenter.

On utilise généralement cette boucle lorsqu'on ne connait pas le nombre d'itérations au préalable.

Exemple :

La boucle suivante permet d'afficher la plus petite puissance de 2 supérieure à nombre.

nombre = 999
valeur = 1
while valeur < nombre:
    valeur = valeur * 2
print(valeur)
1024

Boucle infinie

Les boucles while présentent un risque de boucle infinie. Pour que la boucle prenne fin, il faut s'assurer que l'expression qui conditionne l'exécution du corps de la boucle prendra la valeur False, éventuellement après de très nombreuses étapes. Il faut donc s’assurer que la valeur de cette expression est bien modifiée par les instructions du corps de la boucle (ou par un événement).

Exemple :

La boucle suivante ne se termine jamais : la variable valeur n'est jamais modifiée dans le corps de la boucle. Seule une action de l’utilisateur peut interrompre l'exécution du programme.

compteur = 0
valeur = 0
while valeur == 0:
    compteur = compteur + 1
    print(compteur)

À l'inverse, si l'expression qui conditionne l'exécution du corps de la boucle a pour valeur False dès le départ, le corps de la boucle n’est jamais exécuté.