Explication de la leçon
Après cette leçon, tu seras capable de :
while lorsque la répétition dépend d'un état changeant.break lorsque la cible est trouvée.continue.Utilise while lorsque le programme doit répéter des instructions tant qu'une condition reste vraie :
while attempts < max_attempts:
...Contrairement à une boucle for, une boucle while ne met pas automatiquement à jour son état de contrôle. Ton code doit modifier la valeur utilisée par la condition, sous peine d'exécuter la boucle indéfiniment.
break quitte immédiatement la boucle entière. Utilise-le lorsqu'il devient inutile de continuer, par exemple après avoir trouvé un serveur sain.
continue saute les instructions restantes de l'itération courante et revient à la condition de boucle. Avant d'utiliser continue, assure-toi que toute mise à jour requise d'index ou de compteur a déjà eu lieu ; sinon, la boucle peut répéter le même élément indéfiniment.
Utilise for pour une plage numérique connue ou une itération directe sur des valeurs. Utilise while lorsque le point d'arrêt dépend d'un état qui change au cours de l'exécution.
La mise à jour du compteur finit par rendre la condition fausse.
attempt = 1
while attempt <= 3:
print(f"Attempt {attempt}")
attempt += 1Sortie :
Attempt 1
Attempt 2
Attempt 3Sans attempt += 1, cette boucle ne se terminerait pas.
break quitte dès que l'état sain est trouvé.
statuses = ["error", "error", "ready"]
index = 0
while index < len(statuses):
status = statuses[index]
index += 1
if status == "ready":
print(f"Ready on check {index}")
breakSortie :
Ready on check 3Aucune itération ultérieure n'est nécessaire après le succès.
continue saute l'affichage de la valeur invalide mais maintient la boucle en marche.
readings = [18, -1, 22]
index = 0
while index < len(readings):
reading = readings[index]
index += 1
if reading == -1:
continue
print(reading)Sortie :
18
22L'index est mis à jour avant continue, de sorte que la boucle progresse.
continue et breakUne condition ignore une entrée inutilisable ; une autre met fin au traitement.
commands = ["", "status", "stop", "deploy"]
index = 0
while index < len(commands):
command = commands[index]
index += 1
if not command:
continue
if command == "stop":
break
print(command)Sortie :
statusLa commande vide est ignorée, et le traitement s'arrête à stop.
| Besoin | Outil |
|---|---|
| Répéter tant que l'état reste valide | while |
| Quitter complètement la boucle | break |
| Ignorer uniquement cette itération | continue |
| Éviter une boucle infinie | Mettre à jour l'état de contrôle |
break lorsqu'un seul élément doit être sauté.continue avant la mise à jour d'index nécessaire.while pour une plage fixe simple quand for est plus clair.