0 XP
?
Fondamentaux de l'algorithmique/Boucles et itérations
Débutant60 min40 XP

Objectifs de cette leçon

  • Utiliser les boucles for et while
  • Comprendre les itérations et les parcours
  • Éviter les boucles infinies

Les boucles (itération) 🔄

Imagine que tu doives écrire "Bonjour" 100 fois. Tu ne vas pas copier-coller 100 fois la même ligne, si ? C'est là que les boucles arrivent à la rescousse !


1. Pourquoi des boucles ? 🤔

Les boucles permettent d'exécuter un bloc d'instructions plusieurs fois sans les écrire plusieurs fois.

Sans boucle :

print("Bonjour")
print("Bonjour")
print("Bonjour")  # Fastidieux ! Et pour 100 fois ?

Avec une boucle :

for i in range(3):
    print("Bonjour")  # 3 lignes suffisent pour 3 ou 3000 affichages !

Il existe deux sortes de boucles :

  • for — quand on sait à l'avance combien de fois répéter
  • while — quand on répète tant qu'une condition est vraie

2. La boucle for — "pour chaque…" 🔢

La boucle for sert à parcourir une série d'éléments ou à compter.

Exécution pas à pas

pseudo
1/4
🔄
POUR i ALLANT DE 0 À 5 FAIRE
TANT QUE ...🔄 BoucleVérifie si "POUR i ALLANT DE 0 À 5" est vrai. Si oui, on recommence. Sinon, on sort de la boucle.

Répète les actions suivantes TANT QUE "POUR i ALLANT DE 0 À 5" est vraie. Dès que c'est faux, on continue après la boucle.

🔍 Traduction : "Pour chaque nombre i qui va de 0 à 5, affiche-le". La boucle va donc faire 6 étapes (0, 1, 2, 3, 4, 5).

En Python :

for i in range(6):    # range(6) = [0, 1, 2, 3, 4, 5]
    print(i)          # Affiche chaque nombre l'un après l'autre
# Résultat : 0 1 2 3 4 5

range(6) c'est comme une liste de nombres : 0, 1, 2, 3, 4, 5. La variable i prend chaque valeur à tour de rôle, et le bloc sous for s'exécute à chaque fois.

On peut aussi parcourir une liste de fruits :

fruits = ["pomme", "banane", "cerise"]
for fruit in fruits:    # 'fruit' prend chaque élément un par un
    print(fruit)        # Affiche : pomme, banane, cerise

🧠 Souviens-toi : for c'est comme "pour chaque élément de cette liste, fais quelque chose". Le nom après for (ici fruit) est choisi par toi, au singulier de ce que tu parcours.


3. La boucle while — "tant que…" ⏳

La boucle while répète un bloc tant qu'une condition est vraie. Dès que la condition devient fausse, la boucle s'arrête.

Exécution pas à pas

pseudo
1/4
🔄
TANT QUE condition VRAIE FAIRE
TANT QUE ...🔄 BoucleVérifie si "condition VRAIE" est vrai. Si oui, on recommence. Sinon, on sort de la boucle.

Répète les actions suivantes TANT QUE "condition VRAIE" est vraie. Dès que c'est faux, on continue après la boucle.

🔍 Traduction : "Tant que la condition est vraie, je continue. Dès qu'elle devient fausse, j'arrête et je passe à la suite."

Exemple du jeu "devine le nombre" :

mystere = 42
tentative = -1

while tentative != mystere:           # Tant que le joueur n'a pas trouvé…
    tentative = int(input("Devinez : "))  # …on lui demande un nombre
    if tentative < mystere:
        print("Trop petit")
    elif tentative > mystere:
        print("Trop grand")

print("Bravo !")                      # On sort de la boucle → le joueur a gagné !

Pas à pas :

  1. Le programme pose la question : "Est-ce que tentative (qui vaut -1) est différent de mystere (42) ?" → Oui, donc on entre dans la boucle
  2. Le joueur entre 30 → "Trop petit". On remonte vérifier la condition
  3. "30 != 42 ?" → Oui, on continue
  4. Le joueur entre 42 → "42 != 42 ?" → Non ! La boucle s'arrête
  5. Le programme affiche "Bravo !"

4. Visualisation : somme de 0 à 5 🎯

Calculons la somme des nombres de 0 à 5 avec une boucle. Voici le chemin parcouru :

La boucle en action :

Touricondition i <= 5 ?somme
10✅ Vrai → on entre0
21✅ Vrai → on entre1
32✅ Vrai → on entre3
43✅ Vrai → on entre6
54✅ Vrai → on entre10
65✅ Vrai → on entre15
76Faux → on sort15

Regarde le diagramme interactif "Exécution pas à pas" plus bas : tu peux cliquer pour voir chaque étape avec les valeurs de i et somme qui changent en direct ! 🕹️


5. Les instructions de contrôle 🛑

Parfois on veut modifier le comportement normal d'une boucle :

InstructionEffetAnalogue dans la vie
breakSort immédiatement de la boucleComme dire "stop, j'arrête"
continueSaute à l'itération suivanteComme "celui-là, je le zappe"
elseExécuté si la boucle finit normalement"Mission accomplie sans incident"
for i in range(10):
    if i == 3:
        continue   # On saute le 3, on passe directement au 4
    if i == 7:
        break      # On s'arrête là, on ne va pas jusqu'à 9
    print(i)
# Résultat : 0 1 2 4 5 6

Explication : Le programme compte de 0 à 9. Quand i vaut 3, continue saute l'affichage. Quand i vaut 7, break casse la boucle. On n'affiche donc que 0, 1, 2, 4, 5, 6.


6. Piège : la boucle infinie ⚠️

Attention ! Si ta condition de while n'est jamais fausse, la boucle tourne pour toujours et le programme plante (ou rame à l'infini) :

# ❌ À NE JAMAIS FAIRE
while True:
    print("Je tourne en rond !")  # Ce message s'affiche à l'infini !

💡 Pour l'éviter : vérifie toujours qu'une variable dans la condition finira par changer. Par exemple, dans le jeu du nombre mystère, tentative change à chaque tour (le joueur entre un nouveau nombre), donc la condition tentative != mystere finira par être fausse.


7. Exercice pour toi 🎯

Ouvre l'onglet Sandbox et écris ces programmes :

Exercice 1 : Table de multiplication Demande un nombre à l'utilisateur et affiche sa table de multiplication (de 1 à 10).

n = int(input("Quelle table ? "))
for i in range(1, 11):
    print(f"{n} × {i} = {n * i}")

Exercice 2 : Compte à rebours Affiche un compte à rebours de 10 à 0 avec "Décollage !" à la fin.

Exercice 3 : Somme à volonté Demande des nombres à l'utilisateur tant qu'il n'entre pas 0, et affiche la somme totale à la fin.

⚡ Simulateur — Boucle FOR

Étape 1/7
📝 Pseudo-code
1POUR i ALLANT DE 1 À 5 FAIRE
2 afficher("Bonjour n°", i)
3FIN POUR
⚙️ Exécution
📦 Mémoire
Aucune variable
🔀 Flux d'exécution
Initial
3

Boucle FOR : i va de 1 à 5.

⚡ Simulateur — Boucle WHILE

Étape 1/11
📝 Pseudo-code
1DEBUT
2 compteur = 1
3 TANT QUE compteur <= 5 FAIRE
4 afficher("Tour n°", compteur)
5 compteur = compteur + 1
6 FIN TANT QUE
7 afficher("Boucle terminée !")
8FIN
⚙️ Exécution
📦 Mémoire
Aucune variable
🔀 Flux d'exécution
Début
3

Programme avec boucle WHILE.