Else de boucle

5.5 Else de boucle

Objectifs d'apprentissage

À la fin de cette section, vous devriez être capable de :

  • Utiliser l'instruction else de boucle pour identifier le moment où l'exécution de la boucle est interrompue par une instruction break.
  • Implémenter une instruction else de boucle avec une boucle for ou while.

Else de boucle

Une instruction else de boucle (loop else) s'exécute une fois que l'exécution de la boucle est terminée sans avoir été interrompue par une instruction break. Un else de boucle est utilisé pour déterminer si la boucle s'est terminée normalement ou si son exécution a été interrompue par une instruction break.

Ex. : Une boucle for qui parcourt une liste de nombres pour vérifier si la valeur 10 s'y trouve. À chaque itération, si 10 est rencontré, l'instruction "Found 10!" est affichée et l'exécution peut se terminer à l'aide d'une instruction break. Si 10 n'est pas dans la liste, la boucle se termine lorsque tous les entiers de la liste ont été évalués, et par conséquent l'instruction else s'exécutera et affichera "10 is not in the list." Une autre solution consiste à utiliser une variable booléenne pour vérifier si le nombre 10 a été trouvé après la fin de l'exécution de la boucle.

Exemple 5.4

Recherche du nombre 10 dans une liste

Dans les exemples de code ci-dessous, le code de gauche affiche "Found 10!" si la valeur de la variable i est 10. Si la valeur 10 n'est pas dans la liste, le code affiche "10 is not in the list.". Le code de droite utilise la variable booléenne seen pour suivre si la valeur 10 est dans la liste. Après l'exécution de la boucle, si la valeur de seen est toujours fausse, le code affiche "10 is not in the list.".

numbers = [2, 5, 7, 11, 12]
for i in numbers:
  if i == 10:
    print("Found 10!")
    break
else:
  print("10 is not in the list.")
numbers = [2, 5, 7, 11, 12]
seen = False
for i in numbers:
  if i == 10:
    print("Found 10!")
    seen = True
if seen == False:
  print("10 is not in the list.")
Tableau 5.3

Faites le point

Modèle de else de boucle

Concepts en pratique

Exercices sur le else de boucle

1.
Quelle est la sortie ?
n = 16
exp = 0
i = n
while i > 1:
  if n%2 == 0:
    i = i/2
    exp += 1
  else:
    break
else:
  print(n,"is 2 to the", exp)
  1. 16 is 2 to the 3
  2. 16 is 2 to the 4
  3. aucune sortie
2.
Quelle est la sortie ?
n = 7
exp = 0
i = n
while i > 1:
  if n%2 == 0:
    i = i//2
    exp += 1
  else:
    break
else:
  print(n,"is 2 to the", exp)
  1. aucune sortie
  2. 7 is 2 to the 3
  3. 7 is 2 to the 2
3.
Quelle est la sortie ?
numbers = [1, 2, 2, 6]
for i in numbers:
  if i >= 5:
    print("Not all numbers are less than 5.")
    break
  else:
    print(i)
    continue
else:
  print("all numbers are less than 5.")
  1. 1
    2
    2
    6
    Not all numbers are less than 5.
    
  2. 1
    2
    2
    Not all numbers are less than 5.
    
  3. 1
    2
    2
    6
    all numbers are less than 5.
    

À vous d'essayer

Somme des valeurs inférieures à 10

Écrivez un programme qui, à partir d'une liste donnée, calcule la somme de toutes les valeurs entières inférieures à 10. Si une valeur supérieure ou égale à 10 est présente dans la liste, aucune sortie ne doit être affichée. Testez le code avec différentes valeurs dans la liste.