Mathématiques · Seconde
Boucles bornées et non bornées : exercices de seconde
Publié le 9 novembre 2026 · Mis à jour le 9 novembre 2026 · Signaler une erreur
L'essentiel
- Une boucle bornée (for) répète des instructions un nombre de fois connu à l'avance ; une boucle non bornée (while) répète tant qu'une condition reste vraie.2
- Pour choisir : si tu sais combien de tours il faut, prends for ; si tu ne sais que la condition d'arrêt, prends while.2
- Une boucle non bornée a besoin d'une condition d'arrêt, et le corps de la boucle doit faire évoluer ce qu'elle teste, sinon elle ne s'arrête jamais.2
- Pour vérifier un programme, fais un tableau de suivi : une ligne par tour, une colonne par variable.
Comment utiliser ces exercices
Ces exercices portent sur les deux grandes familles de boucles que tu rencontres en seconde : celles qui répètent un nombre de fois connu, et celles qui s'arrêtent quand une condition change. Tu connais déjà les variables, les affectations et les instructions conditionnelles : elles servent ici à chaque exercice. Le programme demande de savoir écrire une instruction conditionnelle et un calcul itératif avec une fin de boucle.1
Les exercices sont classés par difficulté croissante. Le niveau 1 vérifie le vocabulaire et le suivi d'un programme, le niveau 2 mélange boucle et condition, le niveau 3 t'amène à choisir toi-même la boucle et la condition d'arrêt.
Les exercices
Exercice 1 Compter les passages
On considère le programme suivant :
for i in range(4):
print("Bonjour")
print("Fin")
- Combien de fois le mot « Bonjour » est-il affiché ?
- Cette boucle est-elle bornée ou non bornée ? Justifie.
- Le mot « Fin » est-il affiché une fois ou plusieurs fois ?
Indice 1
Regarde l'indentation : print("Fin") est-il décalé comme print("Bonjour") ?
Indice 2
range(4) fournit quatre valeurs de i : 0, 1, 2 et 3.
Voir la correction pas à pas
Le compteur i prend les valeurs 0, 1, 2, 3 : cela fait 4 tours, donc « Bonjour » est affiché 4 fois.
Le nombre de tours est connu avant de lancer le programme et la boucle utilise for : c'est une boucle bornée.
La ligne
print("Fin")n'est pas décalée : elle n'appartient pas à la boucle. Elle s'exécute une seule fois, après les 4 tours.
« Bonjour » s'affiche 4 fois, puis « Fin » une seule fois. Le nombre de tours d'un for avec range(n) se lit directement dans n.
Exercice 2 Cumuler avec un compteur
Voici un programme qui utilise un compteur dans une boucle bornée :
s = 0
for i in range(1, 6):
s = s + i
print(s)
- Recopie et complète un tableau donnant, à la fin de chaque tour, les valeurs de
iet des. - Quelle valeur le programme affiche-t-il ?
Indice 1
Au départ, s vaut 0. À chaque tour, on ajoute la valeur courante de i.
Indice 2
Le dernier tour a lieu pour i = 5, pas pour i = 6.
Voir la correction pas à pas
Départ : s = 0.
Tour 1 : i = 1, s = 0 + 1 = 1.
Tour 2 : i = 2, s = 1 + 2 = 3.
Tour 3 : i = 3, s = 3 + 3 = 6.
Tour 4 : i = 4, s = 6 + 4 = 10.
Tour 5 : i = 5, s = 10 + 5 = 15. La boucle s'arrête car range(1, 6) n'atteint pas 6.
Le programme affiche la valeur finale de s : 15.
Le programme affiche 15, c'est-à-dire la somme 1 + 2 + 3 + 4 + 5. Ce type de calcul où une variable est mise à jour à chaque tour s'appelle un calcul itératif.1
Exercice 3 Choisir la bonne boucle
Pour chaque situation, indique s'il faut une boucle bornée (for) ou non bornée (while), et explique en une phrase.
- a. Afficher la table de multiplication de 7, de 7 × 1 à 7 × 10.
- b. Lancer un dé jusqu'à obtenir un 6.
- c. Ajouter 2 à un nombre en partant de 0 tant qu'on ne dépasse pas 1000.
- d. Afficher le nom de chacun des 12 mois de l'année.
Indice 1
Pose-toi la question : puis-je dire à l'avance combien de tours il faudra ?
Indice 2
Une boucle non bornée se pilote par une condition d'arrêt.2
Voir la correction pas à pas
Situation a : 10 multiplications, nombre connu d'avance. Boucle bornée (for).
Situation b : on ne sait pas combien de lancers seront nécessaires ; on s'arrête quand le dé affiche 6. Boucle non bornée (while), avec la condition « le résultat est différent de 6 ».
Situation c : on s'arrête quand la valeur dépasse 1000, ce qui dépend de la condition et non d'un nombre de tours imposé. Boucle non bornée (while). (On pourrait calculer le nombre de tours à l'avance, environ 500, mais la condition traduit plus directement l'énoncé.)
Situation d : 12 mois, nombre connu d'avance. Boucle bornée (for).
Bornée pour a et d, non bornée pour b et c. Savoir choisir le type de boucle adapté à une situation est une compétence essentielle en algorithmique.
Exercice 4 Doubler jusqu'à dépasser
n = 1
while n <= 50:
n = n * 2
print(n)
- Fais un tableau de suivi de la variable
n. - Quelle valeur est affichée ?
- La valeur affichée est-elle inférieure ou supérieure à 50 ? Pourquoi ?
Indice 1
Teste la condition n <= 50 avant chaque tour, y compris le premier.
Indice 2
Écris la valeur de n à la fin de chaque tour : 1, 2, 4, …
Voir la correction pas à pas
Départ : n = 1. Condition 1 ≤ 50 vraie, donc un tour : n = 2.
Condition 2 ≤ 50 vraie : n = 4.
Condition 4 ≤ 50 vraie : n = 8.
Condition 8 ≤ 50 vraie : n = 16.
Condition 16 ≤ 50 vraie : n = 32.
Condition 32 ≤ 50 vraie : n = 64.
Condition 64 ≤ 50 fausse : la boucle s'arrête. Le programme affiche 64.
64 est supérieur à 50 : la condition n'est testée qu'au début d'un tour, donc le dernier doublement a déjà dépassé 50 avant que le test le constate.
Le programme affiche 64 après 6 tours. Retiens que la valeur finale d'un while peut dépasser la limite de la condition.
Exercice 5 Boucle et condition réunies
c = 0
for i in range(1, 31):
if i % 3 == 0:
c = c + 1
print(c)
L'expression i % 3 == 0 est vraie quand i est un multiple de 3.
- Combien de tours la boucle effectue-t-elle ?
- Quels sont les nombres i pour lesquels
caugmente ? - Quelle valeur est affichée ?
Indice 1
Les valeurs de i vont de 1 à 30 inclus, car la borne droite de range est exclue.
Indice 2
Liste les multiples de 3 jusqu'à 30.
Voir la correction pas à pas
range(1, 31) donne les entiers de 1 à 30 : la boucle fait 30 tours.
La variable c n'augmente que si i est un multiple de 3 : 3, 6, 9, 12, 15, 18, 21, 24, 27 et 30.
On compte ces valeurs : il y en a 10, donc c vaut 10 à la fin.
Le programme affiche 10.
Le programme affiche 10. Une instruction conditionnelle placée dans un for permet de compter les valeurs qui vérifient une propriété.1
Exercice 6 Placement et condition d'arrêt
Un capital de 1 000 € augmente de 5 % chaque année. On veut savoir au bout de combien d'années il dépassera 1 200 €.
capital = 1000
annees = 0
while capital <= 1200:
capital = capital * 1.05
annees = annees + 1
print(annees)
- Pourquoi une boucle non bornée est-elle adaptée ici ?
- Calcule le capital à la fin de chaque tour.
- Quelle valeur de
anneesest affichée ?
Indice 1
Augmenter de 5 % revient à multiplier par 1,05.
Indice 2
Arrête-toi dès que le capital est strictement supérieur à 1 200.
Voir la correction pas à pas
On ne connaît pas à l'avance le nombre d'années : seule la condition d'arrêt (capital supérieur à 1 200) est connue. Une boucle non bornée convient donc.2
Tour 1 : capital = 1000 × 1,05 = 1 050 €, annees = 1.
Tour 2 : 1 050 × 1,05 = 1 102,50 €, annees = 2.
Tour 3 : 1 102,5 × 1,05 = 1 157,625 €, annees = 3. Comme 1 157,625 ≤ 1 200, on continue.
Tour 4 : 1 157,625 × 1,05 ≈ 1 215,51 €, annees = 4.
Comme 1 215,51 > 1 200, la condition est fausse et la boucle s'arrête. Le programme affiche 4.
Il faut 4 années pour dépasser 1 200 €. La condition de la boucle décrit exactement la situation où l'on veut continuer, et sa négation donne l'arrêt.
Exercice 7 Seuil d'une suite
On définit la suite par et, pour tout entier naturel , .
u = 3
n = 0
while u <= 100:
u = 2 * u - 1
n = n + 1
print(n)
- Calcule les termes successifs de la suite.
- Que représente la valeur de n affichée à la fin ?
- Donne cette valeur.
Indice 1
À chaque tour, u passe de à et n augmente de 1 : u et n restent liés.
Indice 2
Arrête-toi au premier terme strictement supérieur à 100.
Voir la correction pas à pas
Départ : , n = 0 ; 3 ≤ 100, on entre dans la boucle.
Tour 1 : , n = 1.
Tour 2 : , n = 2.
Tour 3 : , n = 3.
Tour 4 : , n = 4.
Tour 5 : , n = 5.
Tour 6 : , n = 6. Comme 129 > 100, la boucle s'arrête.
La variable n contient l'indice du premier terme supérieur à 100 : n = 6.
Le programme affiche 6 : est le premier terme de la suite à dépasser 100, alors que ne le dépasse pas.
Exercice 8 Repérer et corriger une boucle infinie
Un élève veut afficher les nombres impairs en partant de 1 jusqu'à 9 :
n = 1
while n != 10:
print(n)
n = n + 2
- Fais un tableau de suivi pour les premiers tours.
- Explique pourquoi le programme ne s'arrête jamais.
- Propose une correction de la condition.
- Le même élève hésite à utiliser un for. Écris une version avec for et dis si elle te semble plus sûre.
Indice 1
La condition n != 10 signifie « n est différent de 10 ». Peut-on atteindre 10 en partant de 1 et en ajoutant 2 ?
Indice 2
Avec for, c'est range qui fixe le nombre de tours.
Voir la correction pas à pas
Tableau : n = 1, 3, 5, 7, 9, 11, 13, … : n reste toujours impair.
Un nombre impair ne vaut jamais 10 : la condition
n != 10est toujours vraie et la boucle ne s'arrête jamais.Correction : remplacer par
while n < 10. La boucle affiche 1, 3, 5, 7, 9, puis n vaut 11 : la condition est fausse et la boucle s'arrête.Version bornée :
for n in range(1, 10, 2): print(n). Ici le nombre de tours est fixé d'avance (cinq), donc l'arrêt est garanti. Cette écriture est plus sûre quand le nombre de tours est connu.
Une condition d'arrêt doit pouvoir devenir fausse. Choisir < plutôt que != protège contre la boucle infinie, et on peut expliquer son choix de condition en vérifiant que la variable testée évolue vers l'arrêt.2
Les questions qu'on se pose
Comment savoir si je dois écrire un for ou un while ?
Demande-toi si tu peux annoncer le nombre de tours avant de lancer le programme. Si oui, une boucle bornée (for) convient.2 Si tu connais seulement la condition qui arrête le calcul (dépasser un seuil, obtenir un résultat), il te faut une boucle non bornée (while) et tu dois soigneusement choisir sa condition.2
Que faire si mon programme ne s'arrête pas ?
Arrête-le avec le raccourci d'interruption de ton éditeur, puis déroule-le à la main sur deux ou trois tours. Vérifie que le corps de la boucle modifie bien une variable testée dans la condition, et que cette variable se rapproche de la valeur qui rend la condition fausse. Un != à la place d'un < est une cause fréquente.
Pourquoi la valeur finale dépasse-t-elle parfois le seuil ?
Dans un while, la condition est examinée au début de chaque tour. Le dernier tour exécuté part d'une valeur encore acceptée et en produit une nouvelle qui peut dépasser le seuil. La boucle ne s'arrête qu'au test suivant. C'est normal : c'est justement ce qui permet de trouver le premier terme ou la première année qui dépasse une valeur.
Sources
Programme visé : Programme de mathématiques de seconde générale et technologique · Ministère de l'Éducation nationale
- Programme de mathématiques de seconde générale et technologique, Ministère de l'Éducation nationale. Consulté le 9 novembre 2026.
- Algorithmique et programmation - Ressources pour la classe de seconde, Éduscol. 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.