Mathématiques · Seconde
Boucles bornées et non bornées : cours de seconde
Publié le 9 novembre 2026 · Mis à jour le 9 novembre 2026 · Signaler une erreur
L'essentiel
- Une boucle répète un bloc d'instructions. Elle est bornée quand le nombre de répétitions est connu à l'avance (instruction
for) 2. - Elle est non bornée quand on répète tant qu'une condition reste vraie (instruction
while) : il faut alors prévoir une condition d'arrêt 2. - Dans une boucle
while, une variable de la condition doit changer à chaque tour, sinon la boucle ne s'arrête jamais. - Avec
for i in range(a, b), le compteuriprend les valeurs deaàb - 1:bn'est jamais atteint. - Pour choisir : nombre de tours connu,
for; arrêt qui dépend d'un résultat (un seuil à dépasser),while. - Le programme de seconde demande de programmer des calculs itératifs avec une fin de boucle 1 : somme, suite, seuil.
Pourquoi répéter des instructions ?
Imagine que tu veuilles afficher les nombres de 1 à 100, ou calculer la somme des 50 premiers entiers. Écrire cent lignes print à la main serait long, pénible et plein de risques d'erreur. Un ordinateur sait répéter une tâche sans se fatiguer : il suffit de lui expliquer quoi répéter et combien de fois (ou jusqu'à quand).
C'est le rôle des boucles. Dans le programme de seconde, elles servent surtout à programmer des calculs itératifs, c'est-à-dire des calculs où l'on refait la même opération plusieurs fois, en réutilisant le résultat précédent, avec un moment où l'on s'arrête 1. Tu as déjà rencontré les variables et leurs affectations, ainsi que les instructions conditionnelles (if) : une boucle s'appuie sur ces deux outils.
On distingue deux grandes familles. Les boucles bornées exécutent leurs instructions un nombre de fois indiqué dès le départ. Les boucles non bornées demandent de préciser une condition d'arrêt 2. Tout le chapitre tient dans cette différence : savoir reconnaître laquelle utiliser, puis l'écrire correctement.
Boucles
- Bornée (for)
- Nombre de tours connu
- Compteur
- range(a, b)
- Non bornée (while)
- Condition d'arrêt
- Mise à jour
- Risque de boucle infinie
- Calcul itératif
- Somme, produit
- Suite
- Seuil
La boucle bornée : l'instruction for
Voici le plus petit exemple possible : répéter cinq fois un affichage.
for i in range(5):
print("Bonjour")
Le mot for annonce la boucle. La variable i est le compteur : Python lui donne une nouvelle valeur à chaque tour. L'expression range(5) fournit les valeurs 0, 1, 2, 3, 4. Le corps de la boucle (ici, la ligne print) est décalé de quatre espaces. Le programme affiche donc « Bonjour » cinq fois. Une boucle bornée de ce type permet de répéter cinq fois d'affilée une même action 2.
Le compteur n'est pas réservé à l'affichage : on peut l'utiliser dans un calcul à l'intérieur du corps. Une fonction qui se sert d'un compteur dans une boucle bornée illustre cet usage 2. Par exemple, pour afficher les carrés des entiers de 1 à 5 :
for k in range(1, 6):
print(k * k)
On obtient 1, 4, 9, 16, 25.
Suivre l'exécution à la main : le tableau d'état
Pour comprendre une boucle, ou pour trouver pourquoi elle donne un mauvais résultat, rien ne vaut le tableau d'état : tu écris, tour après tour, la valeur de chaque variable. C'est la technique de base pour vérifier un algorithme sans ordinateur.
La variable s joue le rôle d'accumulateur : on la prépare à 0 avant la boucle, puis on y ajoute quelque chose à chaque tour. Cette ligne s = s + i se lit : « la nouvelle valeur de s est l'ancienne valeur de s plus i ». Ce n'est pas une égalité mathématique (elle n'aurait aucun sens avec ) mais une affectation, que tu connais déjà.
La boucle non bornée : l'instruction while
Une boucle qui s'écrit en français « tant que i ≤ 5 » est un exemple de boucle non bornée 2. En Python :
i = 1
while i <= 5:
print(i)
i = i + 1
Le fonctionnement est le suivant :
- Python évalue la condition
i <= 5. - Si elle est vraie, il exécute le corps, puis revient au point 1.
- Si elle est fausse, il sort de la boucle et passe à la suite du programme.
Ici, i vaut 1 au départ. Le corps affiche 1, puis i devient 2 ; et ainsi de suite jusqu'à l'affichage de 5, après lequel i vaut 6. La condition 6 <= 5 est fausse : la boucle s'arrête. Le programme a affiché 1, 2, 3, 4, 5.
Une consigne fréquente en classe consiste à expliquer le choix de la condition d'une boucle non bornée 2. Pour cela, pose-toi la question : « pour quelle situation veut-on continuer ? » La condition de while décrit toujours le cas où l'on continue, jamais celui où l'on s'arrête. Si ton énoncé dit « on s'arrête quand le capital dépasse 2 000 », la condition du while sera donc « le capital est inférieur ou égal à 2 000 ».
Choisir entre for et while
Beaucoup de problèmes peuvent s'écrire avec les deux boucles, mais l'une est presque toujours plus naturelle. Le critère est simple : connais-tu le nombre de tours avant de commencer ?
| Critère | for (bornée) | while (non bornée) |
|---|---|---|
| Nombre de tours | Connu avant la boucle | Pas forcément connu |
| Ce qui arrête | Fin des valeurs du compteur | Condition devenue fausse |
| À prévoir | Les bornes de range | Initialisation et mise à jour |
| Risque principal | Borne exclue oubliée | Boucle infinie |
Calculs itératifs : somme, suite et seuil
Les boucles servent surtout à programmer des calculs itératifs : à chaque tour, on calcule une nouvelle valeur à partir de l'ancienne, et la boucle s'arrête au bon moment 1. Voici les trois schémas à connaître.
Erreurs fréquentes et mise au point
Les erreurs sur les boucles sont presque toujours les mêmes. Les connaître t'évite de longues recherches devant l'écran.
- AfficherMets un print du compteur dans le corps.
- TabulerFais le tableau d'état à la main.
- ComparerTrouve le premier tour qui diffère.
- CorrigerRépare la ligne exécutée à ce tour.
Exercices corrigés
Exercice 1 Somme des entiers de 1 à 10
Voici un programme :
s = 0
for i in range(1, 11):
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
La borne de droite de range est exclue.
Indice 2
Tu peux regrouper les termes deux par deux : 1 + 10, 2 + 9, etc.
Voir la correction pas à pas
range(1, 11)donne les entiers de 1 à 10 (11 est exclu) : le corps est exécuté 10 fois.Avant la boucle,
svaut 0. À chaque tour, on ajoute la valeur du compteuriàs.Après les 10 tours,
svaut . En regroupant : cinq paires valent chacune 11, soit .Le
printest placé après la boucle (sans indentation) : il s'exécute une seule fois et affiche 55.
Le programme affiche 55 après 10 tours. Le résultat s'affiche une seule fois parce que le print est en dehors du corps de la boucle.
Exercice 2 Doublements jusqu'à dépasser 100
On part de la valeur 1 et on la double à chaque tour, tant qu'elle ne dépasse pas 100.
v = 1
n = 0
while v <= 100:
v = 2 * v
n = n + 1
print(n)
- Dresse le tableau d'état de
vetnaprès chaque tour. - Quelle valeur le programme affiche-t-il ?
- Pourquoi une boucle
whileest-elle adaptée ici ?
Indice 1
Continue le tableau jusqu'à ce que la condition v <= 100 devienne fausse.
Indice 2
Les valeurs de v sont des puissances de 2.
Voir la correction pas à pas
Au départ :
v = 1,n = 0. La condition1 <= 100est vraie.Tours successifs, valeurs de
v: 2, 4, 8, 16, 32, 64, puis 128, avecnvalant 1, 2, 3, 4, 5, 6, 7.Après le tour 6,
v = 64: la condition64 <= 100est vraie, donc un septième tour a lieu.Après le tour 7,
v = 128: la condition128 <= 100est fausse, la boucle s'arrête et le programme affichen = 7.Le nombre de tours dépend du résultat (le moment où
vdépasse 100), il n'est pas donné par l'énoncé : on choisit donc une boucle non bornée.
Le programme affiche 7. On a utilisé while parce que l'arrêt dépend d'un seuil à dépasser, pas d'un nombre de répétitions fixé à l'avance.
Exercice 3 Un capital qui augmente chaque année
Un capital de 1 000 € augmente de 5 % chaque année (on le multiplie par 1,05). On veut connaître le nombre d'années nécessaires pour que le capital dépasse 1 200 €.
- Écris un programme Python qui répond à la question et justifie le choix de la boucle.
- Détermine à la main la valeur affichée en calculant le capital après chaque année (arrondi au centime).
Indice 1
Le nombre d'années est inconnu : quelle boucle choisir ?
Indice 2
La condition du while décrit le cas où on continue : capital inférieur ou égal à 1 200.
Voir la correction pas à pas
Le nombre d'années n'est pas connu à l'avance : on choisit
while, avec la condition de poursuitecapital <= 1200.Programme :
capital = 1000,annees = 0, puiswhile capital <= 1200:avec dans le corpscapital = capital * 1.05etannees = annees + 1, puisprint(annees)après la boucle.Après 1 an : €. Après 2 ans : €. Après 3 ans : environ €.
Après 3 ans, : la boucle continue. Après 4 ans : environ €, qui est supérieur à 1 200 : la boucle s'arrête.
Le compteur
anneesvaut alors 4.
Le programme affiche 4. Le capital dépasse 1 200 € pour la première fois au bout de 4 ans, alors qu'après 3 ans il vaut environ 1 157,63 €.
Quiz
7 questions · correction immédiate · ton score reste sur ton appareil.
-
Une boucle bornée répète ses instructions un nombre de fois indiqué dès le départ 2, ce qui correspond à la première réponse. La deuxième décrit au contraire une boucle non bornée : l'arrêt dépend d'un résultat, pas d'un nombre de tours connu. La troisième est fausse, car c'est le
whilequi exige une condition d'arrêt 2, et la quatrième décrit une erreur (boucle infinie), pas un choix voulu. -
Le compteur prend les valeurs 3, 4, 5, 6, 7 : cela fait tours. L'erreur tentante est de répondre 6 en comptant la borne 8 : elle est exclue de
range, donc jamais atteinte. -
La variable
in'est jamais modifiée dans le corps : la conditioni <= 5reste vraie à chaque vérification et le programme affiche 1 sans fin. La première réponse serait juste si la lignei = i + 1existait. La syntaxe est correcte, donc aucune erreur de syntaxe n'est signalée. -
C'est faux : en Python, la condition est testée avant chaque tour, y compris le premier. Si elle est fausse dès le départ, le corps n'est jamais exécuté. L'idée d'une exécution obligatoire vient d'autres langages qui ont une structure « répéter... jusqu'à », absente ici.
-
Pour un produit, l'accumulateur démarre à 1, élément neutre de la multiplication : la première multiplication donne alors
1 * 1 = 1. Avecp = 0, tous les produits resteraient égaux à 0, ce qui est l'erreur tentante par analogie avec la somme. Sans initialisation, Python ne connaît paspet signale une erreur. -
Avec
range(1, 11), le compteur va de 1 à 10 car la borne 11 est exclue.range(1, 10)s'arrête à 9,range(10)va de 0 à 9, etrange(0, 11)commence à 0 et contient donc un terme de trop (0). -
Une boucle non bornée demande une condition d'arrêt 2 et son corps doit faire évoluer une variable de la condition, sinon elle ne se termine pas ; elle est adaptée quand le nombre de tours est inconnu. L'affirmation « la condition décrit le cas où l'on s'arrête » est fausse : après
while, on écrit la condition de poursuite (« tant que... »).
Les questions qu'on se pose
Quelle est la différence entre une boucle bornée et une boucle non bornée ?
Une boucle bornée a un nombre de tours indiqué à l'avance, et se programme avec for 2. Une boucle non bornée répète tant qu'une condition reste vraie, et demande de préciser une condition d'arrêt 2 ; on l'écrit avec while. Pose-toi la question : « Est-ce que je sais combien de fois je dois répéter ? » Si oui, for. Sinon, while.
Pourquoi `range(1, 10)` ne va-t-il pas jusqu'à 10 ?
En Python, la borne de droite de range est exclue. Cette convention a un avantage : range(a, b) produit exactement valeurs, ce qui facilite le comptage des tours. Pour inclure 10, écris range(1, 11). Un bon réflexe consiste à vérifier le premier et le dernier tour sur un tableau d'état.
Comment éviter une boucle infinie avec while ?
Vérifie trois points : la variable de la condition est initialisée avant la boucle, le corps la modifie à chaque tour, et la modification la rapproche bien de la situation où la condition devient fausse. Un exemple d'erreur : écrire i = i - 1 dans une boucle while i <= 5 avec i qui part de 1 : i s'éloigne du seuil et la condition reste vraie.
Peut-on remplacer un for par un while, et l'inverse ?
Un for se réécrit toujours avec un while : on initialise le compteur, on pose la condition de poursuite et on incrémente à la main. L'inverse n'est possible que si l'on connaît le nombre de tours. Pour un seuil à dépasser, le while est le bon outil. On te demandera parfois d'expliquer le choix de la condition d'une boucle non bornée 2 : appuie-toi sur la phrase « on continue tant que... ».
Où place-t-on le print du résultat : dans la boucle ou après ?
Si tu veux seulement le résultat final (une somme, un nombre d'années), place print après la boucle, sans indentation. À l'intérieur, il s'exécute à chaque tour et affiche toutes les valeurs intermédiaires, ce qui est utile pour déboguer mais rarement ce que demande l'énoncé.
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.