Mathématiques · CAPCAP
Boucles et conditions : cours de CAP en mathématiques
Publié le 9 novembre 2026 · Mis à jour le 9 novembre 2026 · Signaler une erreur
L'essentiel
- Une condition (if / else) fait choisir au programme entre plusieurs chemins selon qu'une affirmation est vraie ou fausse.
- Une boucle for répète un bloc un nombre de fois connu à l'avance ; une boucle while répète tant qu'une condition reste vraie 13.
- Avec while, la condition est testée avant chaque passage : si elle est fausse dès le départ, le bloc ne s'exécute pas 3.
- Une boucle dont la condition ne devient jamais fausse est une boucle infinie : presque toujours une erreur 2.
- Pour vérifier un programme, fais-le tourner à la main avec un tableau qui suit la valeur de chaque variable.
À quoi servent les conditions et les boucles
Dans le chapitre précédent, tu as appris à créer des variables et à écrire des instructions qui s'exécutent l'une après l'autre. C'est un bon début, mais un programme qui ne fait que suivre une liste d'ordres reste limité. Imagine un distributeur de boissons : il doit vérifier que tu as mis assez d'argent avant de servir, puis rendre la monnaie pièce après pièce. Deux besoins apparaissent :
- choisir : faire telle action dans un cas, une autre action dans un autre cas ;
- répéter : refaire plusieurs fois la même action sans la réécrire à chaque fois.
Les instructions conditionnelles répondent au premier besoin, les boucles au second. Ces trois outils (variables, conditions, boucles) forment la base de l'algorithmique au lycée 1.
Dans ce cours, tu vas :
- écrire des conditions avec
if,elifetelse; - utiliser la boucle
forquand tu sais combien de fois répéter ; - utiliser la boucle
whilequand tu répètes jusqu'à ce qu'une situation change ; - reconnaître et éviter la boucle infinie ;
- suivre un programme à la main pour prédire ce qu'il affiche.
Les exemples sont écrits en Python, le langage utilisé en classe. Chaque exemple part d'une situation de la vie courante ou du métier : remises, épargne, cadences de production, relevés de mesures.
Les conditions : choisir entre plusieurs chemins
En Python, la forme la plus simple s'écrit ainsi :
age = 17
if age >= 18:
print("Majeur")
else:
print("Mineur")
Plusieurs détails comptent :
- la ligne
ifse termine par deux-points ; - le bloc à exécuter est décalé vers la droite (l'indentation, quatre espaces). C'est ce décalage qui dit à Python quelles lignes appartiennent au bloc ;
else(« sinon ») est facultatif : il donne le chemin à suivre quand la condition est fausse.
Ici, age >= 18 est faux puisque 17 est plus petit que 18. Le programme saute le premier bloc et affiche Mineur.
Quand il y a plus de deux cas, on enchaîne avec elif (contraction de « else if », « sinon si ») :
note = 12
if note >= 16:
print("Très bien")
elif note >= 12:
print("Bien")
elif note >= 10:
print("Passable")
else:
print("Insuffisant")
Python teste les conditions dans l'ordre, de haut en bas, et s'arrête à la première qui est vraie. Avec note = 12, la première est fausse, la deuxième est vraie : le programme affiche Bien et ignore le reste. L'ordre est donc important : si tu écrivais d'abord note >= 10, une note de 18 afficherait Passable.
On peut aussi combiner des conditions :
and(« et ») : vrai seulement si les deux conditions sont vraies ;or(« ou ») : vrai si au moins une des deux est vraie ;not(« non ») : inverse le résultat.
Par exemple, if age >= 12 and age < 18: est vrai pour un âge compris entre 12 (inclus) et 18 (exclu).
La boucle for : répéter un nombre de fois connu
La boucle for utilise une variable qui prend une valeur différente à chaque passage. La fonction range fournit la suite de valeurs :
for i in range(4):
print("Bonjour")
Ce programme affiche Bonjour quatre fois. Avec range(4), la variable i prend successivement les valeurs 0, 1, 2 et 3. Attention : on commence à 0, et la valeur 4 n'est jamais atteinte.
Pour choisir le départ, on écrit deux nombres : range(1, 5) donne 1, 2, 3, 4 (le départ est inclus, l'arrivée est exclue).
La boucle while : répéter tant qu'une condition est vraie
Cette règle a deux conséquences importantes.
- Si la condition est fausse dès le départ, le corps ne s'exécute jamais : zéro tour 3.
- Pour que la boucle finisse, il faut qu'au moins une instruction du corps modifie une variable utilisée dans la condition.
On peut voir la boucle while comme un if qui se répète 3 : on pose la question, on agit si la réponse est « oui », puis on pose de nouveau la question.
- 1. TesterOn évalue la condition.
- 2. Vraie ?On exécute le corps de la boucle.
- 3. RevenirOn retourne au test de la condition.
- 4. Fausse ?On sort et on lit la suite du programme.
La boucle infinie : le piège à éviter
Une boucle infinie est presque toujours considérée comme une erreur de programmation : elle ne produit pas de résultat et occupe les ressources de l'ordinateur 2. Sur ton écran, le programme semble « figé » ou affiche sans fin la même chose. Dans l'environnement Python que tu utilises, on peut l'arrêter avec le bouton d'arrêt ou avec le raccourci d'interruption indiqué par ton professeur.
Une boucle infinie est parfois voulue : le programme tourne sans cesse, et une instruction break permet d'en sortir, même si la condition de la boucle reste vraie 3. Dans ce cas, le programmeur doit être sûr que le cas déclenchant le break finira par se produire 2.
while True:
code = input("Code : ")
if code == "1234":
break
print("Accès autorisé")
La condition True ne devient jamais fausse, donc la boucle ne s'arrête pas toute seule. La sortie vient du if placé dans le corps : il lance le break dès que le bon code est tapé. On utilise ce schéma pour redemander une réponse jusqu'à ce qu'elle soit correcte.
Combiner boucles et conditions
Les vrais programmes mélangent les deux outils : une condition à l'intérieur d'une boucle permet de traiter différemment chaque passage. Le corps d'une boucle peut contenir un if, et on décale alors le if d'un cran, puis son propre bloc d'un cran de plus.
Suivre un programme à la main
Avant de lancer un programme, tu peux prédire ce qu'il va faire. Cette habitude évite beaucoup d'erreurs et c'est souvent ce qu'on te demande en contrôle : « Que vaut s à la fin ? » La technique consiste à dresser un tableau de suivi, avec une colonne par variable et une ligne par passage.
Exercices corrigés
Exercice 1 Somme avec une boucle for
On considère le programme suivant :
s = 0
for i in range(1, 6):
s = s + i
print(s)
- Combien de fois le corps de la boucle est-il exécuté ?
- Quelle valeur le programme affiche-t-il ?
Indice 1
range(1, 6) commence à 1 et s'arrête avant 6.
Indice 2
Additionne les valeurs de i une à une.
Voir la correction pas à pas
range(1, 6)fournit les valeurs 1, 2, 3, 4 et 5 : le corps est exécuté 5 fois.Avant la boucle,
svaut 0.Passage 1 : . Passage 2 : . Passage 3 : .
Passage 4 : . Passage 5 : .
Après la boucle,
print(s)affiche 15.
Le corps s'exécute 5 fois et le programme affiche 15.
Exercice 2 Combien de mois pour atteindre l'objectif
Samir a 200 € sur son compte et ajoute 40 € chaque mois. Il veut atteindre au moins 500 €.
total = 200
mois = 0
while total < 500:
total = total + 40
mois = mois + 1
print(mois)
Quelle valeur le programme affiche-t-il ? Justifie avec un tableau de suivi.
Indice 1
Il manque 300 € pour atteindre 500 €. Combien de fois 40 € faut-il ajouter ?
Indice 2
La boucle s'arrête dès que total est supérieur ou égal à 500.
Voir la correction pas à pas
Au départ :
total= 200,mois= 0. La condition est vraie.Après 1 tour : 240 € ; après 2 tours : 280 € ; après 3 tours : 320 € ; après 4 tours : 360 €.
Après 5 tours : 400 € ; après 6 tours : 440 € ; après 7 tours : 480 €. La condition est encore vraie.
Après 8 tours : €. La condition est fausse : la boucle s'arrête.
moisvaut alors 8 : c'est la valeur affichée.
Le programme affiche 8. Contrôle : , donc il faut 8 versements entiers.
Exercice 3 Prix après remise
Un magasin applique 10 % de remise pour tout achat d'au moins 100 €.
montant = 120
if montant >= 100:
montant = montant * 0.9
print(montant)
- La condition est-elle vraie ou fausse ?
- Quelle valeur est affichée, en euros ?
- Que serait-il affiché avec
montant = 80?
Indice 1
Compare 120 et 100 avec le symbole >=.
Indice 2
Multiplier par 0,9 revient à enlever 10 %.
Voir la correction pas à pas
On teste : la condition est vraie.
Le bloc s'exécute :
montantdevient .print(montant)affiche 108.0, c'est-à-dire 108 €.Avec 80 : est faux, le bloc est ignoré et le programme affiche 80.
Avec 120 €, le programme affiche 108 €. Avec 80 €, il affiche 80, sans remise.
Quiz
7 questions · correction immédiate · ton score reste sur ton appareil.
-
Avec
while, la condition est évaluée d'abord ; si elle est vraie, le corps s'exécute, puis on la teste de nouveau 3. Dire qu'elle est testée après le corps confondwhileavec la boucle « faire … tant que », où un premier passage est garanti. La tester une seule fois ferait de la boucle un simpleif. -
xprend les valeurs 0, 1, 2, 3 et 4 au moment du test, et la condition est vraie à chacun de ces cinq tests. Quandxvaut 5, la condition est fausse et la boucle s'arrête. Répondre 6 revient à compter le test final, qui ne déclenche pas d'exécution du corps. -
Dans la première proposition,
iest remis à 1 à chaque tour :i < 10reste toujours vrai 2. La bouclefora un nombre de tours fixé. La troisième bouclewhilefait avanceri, donc elle finit après 10 tours. Leifn'est pas une boucle : il s'exécute au plus une fois. -
Elle ne produit aucun résultat et mobilise l'ordinateur, c'est pourquoi on la traite presque toujours comme un bug 2. Elle peut être voulue dans de rares cas, à condition de prévoir une sortie (par exemple avec
break), mais ce n'est pas le cas général. -
Quand on connaît à l'avance le nombre de répétitions, la boucle bornée
forconvient 1. Unifne répète rien.while Truesansbreakne s'arrête jamais et donnerait une boucle infinie, alors qu'on veut exactement 10 affichages. -
npasse de 3 à 6, puis 12, puis 24. À 12, la condition12 < 20est vraie : on multiplie encore. À 24,24 < 20est faux : la boucle s'arrête et le programme affiche 24. La réponse 12 oublie le dernier doublement, et 20 suppose à tort que la boucle s'arrête pile au seuil. -
L'instruction
breakinterrompt la boucle quelle que soit la valeur de la condition évaluée par la boucle 3. Elle ne remet aucune variable à zéro et ne supprime pas la condition : elle quitte simplement la boucle.
Les questions qu'on se pose
Quelle est la différence entre une boucle for et une boucle while ?
Avec for, tu connais le nombre de passages avant de commencer (par exemple 10 fois). Avec while, tu répètes tant qu'une condition reste vraie, sans savoir à l'avance combien de tours seront nécessaires 13. Exemple : afficher les 10 premiers nombres, c'est for ; ajouter 35 € chaque mois jusqu'à atteindre 500 €, c'est while.
Pourquoi mon programme ne s'arrête-t-il jamais ?
Tu as sans doute une boucle infinie : la condition de ta boucle while ne devient jamais fausse 2. Vérifie trois points : la variable testée est-elle modifiée dans le corps ? Est-elle modifiée dans le bon sens ? Ne la remets-tu pas à sa valeur de départ à chaque tour ? Interromps le programme, puis corrige.
À quoi sert l'indentation en Python ?
Elle indique quelles lignes appartiennent au bloc d'un if, d'un else ou d'une boucle. Une ligne décalée d'un cran vers la droite fait partie du bloc ; une ligne alignée avec le if ou le while n'en fait plus partie. Une indentation fausse change le résultat du programme ou provoque une erreur.
Que faire si la condition d'un while est fausse dès le départ ?
Le corps de la boucle ne s'exécute pas du tout : on dit qu'il y a zéro tour 3. Par exemple, avec x = 10 et while x < 5:, rien n'est exécuté et le programme passe directement à la suite. Ce n'est pas une erreur, c'est le fonctionnement normal.
Comment savoir quel est le résultat d'un programme sans l'exécuter ?
Fais un tableau de suivi : une colonne par variable, une ligne par passage de boucle. À chaque ligne, teste la condition, applique les instructions dans l'ordre et note les nouvelles valeurs. Tu t'arrêtes quand la condition est fausse. C'est la méthode la plus sûre pour répondre à une question du type « que vaut s à la fin ? ».
Sources
- Algorithmique et programmation - Ressources d'accompagnement, Éduscol. Consulté le 9 novembre 2026.
- Boucle infinie, Wikipédia. Consulté le 9 novembre 2026.
- Boucle while, Wikipédia. Consulté le 9 novembre 2026.
Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.