Easier to read with cream paper, a tint, more contrast or larger text? Choose your colours and text, once, for every page.

Aperçu

Est-ce que ça s'arrête

Voici la première page de la leçon. Lis-la et essaie les activités. La suite est dans le cours complet.

30 minutes

La barre de chargement bloquée

Tu lances un jeu. La barre de chargement avance, avance, puis elle reste à 99 %. Tu attends une minute. Dix minutes. Rien.

Le programme n'est pas cassé. Il tourne. Mais il tourne pour toujours dans une boucle qui ne se termine jamais.

Dans cette leçon, tu apprends à voir si une boucle va s'arrêter, avant de lancer le programme.

Mots-clés

MotCe que ça veut direExemple
TerminaisonLe fait qu'un algorithme finit toujours par s'arrêter.Un compte à rebours finit à 0
Boucle infinieUne boucle qui ne s'arrête jamais.while True sans sortie
Condition d'arrêtLa question qui décide si la boucle continue ou finit.while n > 0
VariantUn nombre entier qui change à chaque tour, dans le bon sens, jusqu'à rendre la condition fausse.n dans un compte à rebours
Garde-fouUn compteur de tours qui arrête de force une boucle trop longue.if tours > 1000: return -1
TourUn passage dans la boucle.Le tour numéro 3

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

À toi : devine d'abord

À toi de jouer

À toi : devine d'abord

3 questions
Essayez : vos réponses sont notées ici puis oubliées. Connectez-vous si vous voulez conserver votre score et reprendre là où vous en étiez.Se connecter pour conserver mon score

Tes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.

Le nombre qui baisse

Pour être sûr qu'une boucle s'arrête, on cherche un nombre qui change à chaque tour. On l'appelle le variant.

Le variant doit vérifier trois choses. C'est un nombre entier. Il baisse à chaque tour. Et il ne peut pas baisser pour toujours : quand il arrive à une limite, la condition d'arrêt devient fausse.

À toi : un compte à rebours

Code: python
n = 5
print("Départ :", n)

while n > 0:
    n = n - 1
    print("Après le tour : n vaut", n)

print("La boucle est finie.")

# Change 5 en 8. Compte les tours : un tour par valeur de n.

Exemple travaillé : le variant n

Tourn au début du tourn > 0 ?n à la fin du tour
15oui4
24oui3
33oui2
42oui1
51oui0
60nonLa boucle s'arrête

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Les trois questions

Astuce

Devant une boucle, demande-toi : 1. Quel nombre change à chaque tour ? 2. Change-t-il dans le bon sens ? 3. Peut-il atteindre une valeur qui rend la condition fausse ? Trois oui : la boucle s'arrête.

À toi : la ligne oubliée

Code: python
n = 5
tours = 0

# Garde-fou : on s'arrête de force après 6 tours.
while n > 0 and tours < 6:
    print("n vaut", n)       # n ne change jamais !
    tours = tours + 1

print("On a arrêté la boucle après", tours, "tours.")

# Ajoute dans la boucle la ligne qui manque : n = n - 1.
# Combien de tours fait-elle maintenant ?

Le piège du « différent de »

Voici un piège classique : while n != 0 avec n = n - 3. Si n vaut 9, tout va bien : 9, 6, 3, 0.

Mais si n vaut 10 : 10, 7, 4, 1, puis -2. Le nombre saute par-dessus 0 et ne le touche jamais. La boucle continue sans fin.

Écris n > 0 : cette condition est fausse dès que n passe sous 1.

La leçon continue

11 parties de plus de cette leçon se trouvent dans le cours complet, avec les exercices et la vérification finale. Un compte te donne tout.