Contrôler l’exécution d’une boucle avec break et continue
Note
Pour plus d’informations, consultez l’onglet Texte et images !
Bien que les boucles soient conçues pour répéter un bloc de code, vous avez parfois besoin d’un contrôle plus précis sur la façon dont la boucle s’exécute. Par exemple, vous pouvez quitter une boucle tôt ou ignorer certaines itérations sans arrêter entièrement la boucle.
Python vous donne un contrôle précis sur l’exécution de boucles avec deux instructions : break et continue.
Interrompre — quitter la boucle prématurément
L’instruction break termine immédiatement la boucle indépendamment des conditions. Il indique Python d’arrêter l’exécution de la boucle et de passer à la ligne de code suivante après le bloc de boucle. Par exemple:
for count in range(10):
if count == 5:
break
print(count)
print("Loop ended.")
Output:
0
1
2
3
4
Loop ended.
L’ordre des lignes est important. L’instruction break doit venir après la condition que vous souhaitez vérifier, mais avant le code que vous souhaitez ignorer. Dans l’exemple ci-dessus, la boucle s’arrête avant l’impression 5.
Continuer : passez à l’itération suivante
L’instruction continue indique Python d’ignorer le reste du code sous celui-ci et de passer immédiatement à l’itération suivante de la boucle. Par exemple, vous pouvez ignorer un certain nombre dans une séquence :
for count in range(6):
if count == 3:
continue
print(count)
Output:
0
1
2
4
5
Dans cet exemple, l’instruction continue force Python d’abandonner la print() ligne ci-dessous et de passer à l’itération suivante de la boucle. Cette instruction est utile lorsque vous souhaitez ignorer certaines itérations sans arrêter la boucle entière.
Gérer les boucles while avec break
Les deux mots clés fonctionnent de la même manière dans les boucles while. La combinaison d’une while boucle avec une break instruction est un modèle courant à utiliser lors de la gestion des entrées utilisateur imprévisibles.
Par exemple, vous pouvez continuer à exécuter du code jusqu’à ce que l’utilisateur tape un mot spécifique pour quitter :
while True:
user_input = input("Type 'exit' to stop the loop: ")
if user_input.lower() == "exit":
break
print(f"You entered: {user_input}")
print("Goodbye!")
while True crée une boucle qui s’exécuterait indéfiniment,break c’est la seule façon de la quitter. Ce modèle vous permet d’inviter l’utilisateur à plusieurs reprises et à quitter avec grâce lorsqu’il souhaite arrêter explicitement.
Utiliser continue dans les boucles while
L’utilisation de continue dans une boucle while nécessite une attention particulière à la condition de la boucle. Si vous utilisez continue sans modifier la condition, vous pouvez créer une boucle infinie. Par exemple:
current_slot = 0
while current_slot < 5:
current_slot += 1 # CRUCIAL: Increment happens right at the start of the lap
if current_slot == 3:
print(f"Skipping item slot {current_slot}.")
continue # Aborts the rest of this lap and jumps back to the top
# This processing code is skipped when current_slot is 3
print(f"Successfully processed item in slot {current_slot}.")
print("Inventory scan complete!")
Dans cet exemple, la boucle incrémente current_slot au début de chaque itération. Lorsqu’elle atteint 3, l’instruction continue ignore le code de traitement et revient en haut de la boucle. Si la ligne d’incrémentation a été placée après le continue, la boucle n’atteindreait jamais 5, et elle s’exécuterait pour toujours.
Lorsque vous utilisez continue dans une boucle while, veillez toujours à mettre à jour la condition avant l’instruction continue afin d’éviter de créer une boucle infinie.
Utilisation de else avec les boucles
Lorsqu’une boucle while ou for se termine normalement (sans rencontrer d’instruction break), vous pouvez utiliser un bloc else pour exécuter du code une fois la boucle terminée. Par exemple:
color = "blue"
for i in range(3):
user_input = input("Guess my favorite color: ")
if user_input.lower() == color:
print("You guessed it!")
break
else:
print(f"Sorry, the correct answer is {color}.")