Les boucles WHILE
1. Principe de la Boucle while
La boucle while (tant que) est la deuxième structure de répétition essentielle. Elle permet d'exécuter un bloc de code de manière répétée tant qu'une certaine condition est satisfaite.
La boucle s'arrête dès que la condition devient fausse. - Initialisation : Une variable (appelée compteur ou sentinelle) doit être créée avant la boucle.
- Test : La condition est évaluée.
- Si la condition est vraie (
True), le bloc de code est exécuté. - Si la condition est fausse (
False), la boucle s'arrête et le programme passe à la suite.
- Si la condition est vraie (
- Mise à jour : À l'intérieur du bloc de code, il doit y avoir une instruction qui garantit que la condition finira par devenir fausse (sinon, c'est une boucle infinie).
2. Syntaxe et Mécanisme
Syntaxe :# 1. Initialisation (variable de contrôle)
compteur = 0
while <condition_booléenne>:
# Bloc de code à répéter
print("La condition est encore vraie.")
# 2. Mise à jour (pour éviter la boucle infinie)
compteur = compteur + 1 # ou compteur += 1
Exemple Classique : Compter for i in range(5) en utilisant une boucle while :
Exemple Python
x
compteur = 0 # 1. Initialisationwhile compteur < 5: # 2. Condition de continuation print("Tour numéro :", compteur) compteur += 1 # 3. Mise à jour (incrémentation)print("Fin du décompte.")3. Le Danger de la Boucle Infinie
Une boucle infinie se produit lorsque la condition de sortie n'est jamais atteinte (la condition reste toujoursTrue). C'est l'erreur la plus courante avec while. i = 10
while i > 0: # La condition est VRAIE au départ
print("Je ne m'arrêterai jamais !")
# Oubli de la mise à jour ! La valeur de i reste 10. La condition reste toujours vraie.
Pour arrêter une boucle infinie sur un ordinateur, il faut souvent interrompre le programme manuellement (par exemple, en appuyant sur Ctrl+C dans la console).
4. Usage Principal : Répétition non bornée
La grande force de la boucle while est de gérer les situations où on ne sait pas à l'avance combien de fois le code doit s'exécuter.- Demander à l'utilisateur de recommencer jusqu'à ce qu'une saisie soit valide.
- Simuler des jeux ou des processus qui durent tant qu'une condition (ex: point de vie > 0) est remplie.
Exemple Python
xxxxxxxxxx13
nombre = -1 # Initialisation qui garantit l'entrée dans la boucle# La boucle continue TANT QUE le nombre est inférieur à 0while nombre < 0: try: saisie = input("Veuillez entrer un nombre positif : ") nombre = int(saisie) # Tentative de conversion except ValueError: # Si la saisie n'est pas un nombre, on repasse dans la boucle print("Ceci n'est pas un nombre. Veuillez réessayer.") nombre = -1 # Assure que la condition reste vraie si erreurprint("Merci ! Votre nombre est :", nombre)5. Mots-clés de Contrôle (Avancé)
Parfois, vous devez modifier le déroulement normal de la boucle en cours d'exécution.A. break (Interruption)
Le mot-clé break permet de sortir immédiatement de la boucle (qu'elle soit for ou while), même si la condition de la boucle est toujours True.
Exemple Python
xxxxxxxxxx10
compteur = 1while True: # Boucle potentiellement infinie (condition toujours True) print("Compteur :", compteur) if compteur == 5: print("C'est terminé ! Sortie forcée.") break # Sort IMMÉDIATEMENT de la boucle compteur += 1 # Le programme continue ici après le breakprint(compteur)B. continue (Sauter le tour)
Le mot-clé continue permet de sauter le reste des instructions du tour de boucle actuel et de passer directement à l'itération suivante (retestant la condition while).
Exemple Python
xxxxxxxxxx8
i = 0while i < 10: i += 1 # Incrémentation essentielle avant 'continue' if i % 2 != 0: # Si le nombre est impair (reste de la division par 2 != 0) continue # On ignore le print() et on passe au tour suivant print(i) # N'affiche que les nombres pairs : 2, 4, 6, 8, 10