Retour au cours

contrôle de boucle : break, continue et else

dans cette leçon, vous allez apprendre à contrôler le flux d’exécution à l’intérieur d’une boucle avec break, continue et l’instruction spéciale else qui s’exécute si la boucle se termine normalement.

objectifs

  • interrompre une boucle immédiatement avec break
  • sauter le reste d’une itération avec continue
  • comprendre le fonctionnement de else avec for et while
  • combiner ces outils pour créer des recherches ou validations

break : sortir de la boucle

break stoppe la boucle en cours, quelle que soit la condition.

for n in range(10):
    if n == 5:
        break
    print(n)
# affiche 0 à 4

dans un while :

while True:
    cmd = input("> ")
    if cmd == "quit":
        break
    print(f"vous avez tapé {cmd}")

continue : passer à l’itération suivante

continue ignore le reste du bloc courant et passe au suivant.

for n in range(6):
    if n % 2:
        continue  # saute les impairs
    print(n)

else sur une boucle

le bloc else après un for ou while s’exécute uniquement si la boucle termine sans exécuter break.

recherche avec confirmation :

target = 7
for n in [1, 3, 7, 9]:
    if n == target:
        print("trouvé")
        break
else:
    print("absent")

équivalent avec while :

n = 0
while n < 5:
    if n == 3:
        break
    n += 1
else:
    print("fini sans break")

motifs courants

  • recherche : boucle avec break quand trouvé, else sinon
  • validation : continue pour ignorer les cas non pertinents
  • lecture : while True + break pour arrêter à une condition

bonnes pratiques

  • utilisez break pour les conditions de sortie précises
  • évitez les break multiples dispersés, cela nuit à la lisibilité
  • n’utilisez pas else si cela rend le code moins clair, préférez un flag explicite dans certains cas

mini exemples exécutables

# filtrage avec continue
nums = [0, 5, -3, 8, -1]
for n in nums:
    if n < 0:
        continue
    print(n)
# recherche avec else
data = [2, 4, 6]
search = 5
for val in data:
    if val == search:
        print("trouvé")
        break
else:
    print("non trouvé")
# boucle interactive
while True:
    msg = input("message (stop pour quitter) : ")
    if msg.lower() == "stop":
        break
    if not msg.strip():
        continue
    print("vous avez dit :", msg)

pièges courants

  • croire que else après une boucle est toujours exécuté → non, il saute si break est appelé
  • utiliser continue sans que la condition soit claire → risque de sauter du code important
  • break dans des boucles imbriquées : il ne sort que de la boucle la plus proche (utiliser un flag ou une fonction pour sortir de plusieurs)

exercices

  1. recherche premier pair dans une liste, trouvez le premier nombre pair et affichez-le, sinon affichez "aucun pair".

  2. filtrage positif à partir d’une liste, affichez uniquement les nombres positifs avec continue.

  3. jeu de devinette générez un nombre secret (1 à 10), bouclez jusqu’à ce que l’utilisateur trouve (break), affichez "bravo" et le nombre d’essais.

  4. validation de données parcourez une liste de chaînes, ignorez celles qui sont vides ou seulement des espaces (continue), affichez les autres. utilisez else pour afficher "aucune donnée valide" si tout est ignoré.

  5. lecture fichier lisez un fichier ligne par ligne, arrêtez la lecture si une ligne contient "STOP", sinon affichez les lignes, et affichez "fichier terminé" si STOP n’est jamais trouvé.