Boucle Infinie
Une boucle infinie est une boucle qui ne se termine jamais parce que la condition qui la contrôle n'évalue jamais à False
. Ces boucles peuvent provoquer le blocage ou le plantage d'un programme, elles doivent donc être évitées sauf si elles sont explicitement prévues.
Si une condition est toujours True
, la boucle s'exécutera indéfiniment. Par exemple, utilisons un scénario lié au voyage :
# Infinite loop example
while 'Barcelona' in ['Monako', 'Liverpool', 'Barcelona', 'Munchen']:
print('I found Barcelona!')
- La condition
'Barcelona' in [...]
sera toujoursTrue
parce que'Barcelona'
est présente dans la liste. C'est équivalent àwhile True:
; - La boucle imprime continuellement
'I found Barcelona!'
sans aucun moyen de s'arrêter.
Une variable de boucle mal mise à jour peut également conduire à une boucle infinie. Par exemple :
# Another infinite loop example
i = 0
travel_list = ['Monako', 'Luxemburg', 'Liverpool', 'Barcelona', 'Munchen']
while i < len(travel_list):
print(travel_list[i])
# Missing increment: i += 1
- L'index
i
n'est jamais incrémenté, donc la conditioni < len(travel_list)
est toujoursTrue
; - La boucle continue d'imprimer la première ville (
'Monako'
) indéfiniment.
Pour éviter les boucles infinies, assurez-vous que la condition de la boucle est conçue pour éventuellement s'évaluer à False
. Cela signifie que la condition doit être dynamique et changer pendant l'exécution de la boucle. De plus, si vous utilisez une variable (comme un compteur) pour contrôler la boucle, assurez-vous qu'elle est incrémentée ou mise à jour correctement à l'intérieur de la boucle pour éviter que la condition ne reste True
indéfiniment.
1. Quel est le problème avec le code suivant ?
2. Comment pouvez-vous modifier cette boucle pour éviter qu'elle ne s'exécute indéfiniment ?
Merci pour vos commentaires !