Site de référence: [Introduction à Python] Comment arrêter la boucle en utilisant break?
Il existe deux types d'instructions de boucle Python, l'instruction for et l'instruction while. L'instruction for répète le processus un certain nombre de fois et l'instruction while répète le processus tout en satisfaisant une condition spécifique. C'est une syntaxe pratique qui répète le même processus sans avoir à le saisir encore et encore, mais parfois vous voulez sortir de l'instruction de boucle au milieu. Dans un tel cas, vous pouvez utiliser l'instruction break pour interrompre le processus et sortir de l'instruction de boucle. Cette fois, je vais vous expliquer comment utiliser l'instruction break.
Si vous souhaitez terminer le traitement de la boucle au milieu, vous pouvez utiliser l'instruction if pour le réaliser de manière pseudo. À titre d'exemple, supposons que vous souhaitiez examiner les éléments d'une boucle et écrire du code qui entraînera une erreur s'il y a un nombre supérieur à 100.
list1 = [24, 55, 32, 65, 74, 120, 72, 67]
loop_flag = 0
for num in list1:
if(loop_flag == 0):
if(num < 100):
print(num)
else:
loop_flag = 1
if(loop_flag == 1):
print('Erreur: numéro non valide trouvé')
Résultat d'exécution
24 55 32 65 74 Erreur: numéro non valide trouvé
Dans cet exemple, un indicateur (loop_flag) pour savoir s'il faut continuer la boucle est préparé, et lorsqu'un nombre qui satisfait la condition apparaît, l'indicateur est mis à 1 afin que le traitement à l'intérieur de la boucle ne soit pas exécuté. Cette méthode semble casser la boucle à première vue, mais en réalité elle est très inutile et le code est long juste pour ne rien faire au milieu. Dans ce cas, utilisez l'instruction break.
list1 = [24, 55, 32, 65, 74, 120, 72, 67]
for num in list1:
if(num >= 100):
print('Erreur: numéro non valide trouvé')
break
print(num)
Résultat d'exécution
24 55 32 65 74 Erreur: numéro non valide trouvé
Le résultat de l'exécution est exactement le même que précédemment, mais l'utilisation de break est plus courte et plus facile à voir. L'instruction break est principalement utilisée avec l'instruction if dans l'instruction loop. Si une certaine condition est remplie dans l'instruction if, l'instruction break est utilisée pour interrompre la boucle au milieu et sortir. Toute la syntaxe après l'instruction break est ignorée, donc lorsque vous affichez une instruction d'erreur, etc., écrivez-la avant l'instruction break.
C'est une instruction break qui rompt la boucle au milieu, mais bien sûr, elle peut également être utilisée dans une instruction while.
list1 = [24, 55, 32, 65, 74, 120, 72, 67]
index = 0
while(index < len(list1)):
if(list1[index] >= 100):
print('Erreur: numéro non valide trouvé')
break
print(list1[index])
index += 1
Résultat d'exécution
24 55 32 65 74 Erreur: numéro non valide trouvé
J'ai remplacé l'instruction for par une instruction while, mais l'utilisation de l'instruction break est la même. Bien sûr, le résultat sera le même.
Comme l'instruction if, les instructions Python for et while ont des clauses else. La clause else de l'instruction de boucle est exécutée si l'itération se termine avec succès. Par exemple, si vous souhaitez afficher un message vous informant que l'instruction de boucle s'est terminée après avoir parcouru l'instruction de boucle, procédez comme suit:
list1 = [24, 55, 32, 65, 74, 120, 72, 67]
index = 0
for num in list1:
print(num)
else:
print('La boucle est terminée.')
Résultat d'exécution
24 55 32 65 74 120 72 67 La boucle est terminée.
C'est une clause else très pratique car elle ne peut être traitée qu'une seule fois dans le même bloc de boucle, mais elle n'est pas réellement exécutée lorsque l'instruction break rompt la boucle.
list1 = [24, 55, 32, 65, 74, 120, 72, 67]
index = 0
for num in list1:
if(num >= 100):
print('Erreur: numéro non valide trouvé')
break
print(num)
else:
print('La boucle est terminée.')
Résultat d'exécution
24 55 32 65 74 Erreur: numéro non valide trouvé
Comme dans les exemples précédents, si un nombre de 100 ou plus est trouvé, une erreur se produira et la boucle sera interrompue. Ensuite, la dernière clause else n'est pas exécutée et le message "Boucle terminée" n'est pas affiché.
Si vous utilisez break et else, vous pouvez facilement "déterminer si vous avez rompu ou non et effectuer un processus spécifique uniquement lorsque ce n'est pas le cas".
Normalement, préparez une variable pour déterminer si elle est rompue ou non et vérifiez le contenu de la variable avec l'instruction if pour déterminer si elle est rompue ou non. C'est un problème car cela augmente les variables inutiles. S'il s'agit d'une clause else, vous ne devez écrire le traitement à effectuer que s'il n'y a pas de rupture. Vous n'avez pas besoin de variables inutiles ou d'instructions if.