Aller au contenu

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 compteur i prend les valeurs de a à b - 1 : b n'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.

Les deux familles de bouclesCarte mentale centrée sur les boucles, avec deux branches : bornée (for) et non bornée (while).Nombre de tours connuCompteurrange(a, b)Bornée (for)Condition d'arrêtMise à jourRisque de boucle infinieNon bornée (while)Somme, produitSuiteSeuilCalcul itératifBoucles

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
Les deux familles de boucles · Deux familles de boucles, deux usages.

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 s=s+is = s + i) 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 :

  1. Python évalue la condition i <= 5.
  2. Si elle est vraie, il exécute le corps, puis revient au point 1.
  3. 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 ?

for et while côte à côte
Critèrefor (bornée)while (non bornée)
Nombre de toursConnu avant la bouclePas forcément connu
Ce qui arrêteFin des valeurs du compteurCondition devenue fausse
À prévoirLes bornes de rangeInitialisation et mise à jour
Risque principalBorne exclue oubliéeBoucle infinie
for et while côte à côte · Comparer les deux boucles pour choisir la bonne.

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.

Déboguer une boucleQuatre étapes pour trouver une erreur dans une boucle.1AfficherMets un print du compteur dans le corps.2TabulerFais le tableau d'état à la main.3ComparerTrouve le premier tour qui diffère.4CorrigerRépare la ligne exécutée à ce tour.
  1. AfficherMets un print du compteur dans le corps.
  2. TabulerFais le tableau d'état à la main.
  3. ComparerTrouve le premier tour qui diffère.
  4. CorrigerRépare la ligne exécutée à ce tour.
Déboguer une boucle · Méthode de mise au point.

Exercices corrigés

Exercice 1 Somme des entiers de 1 à 10

★☆☆Environ 8 min

Voici un programme :

s = 0
for i in range(1, 11):
    s = s + i
print(s)
  1. Combien de fois le corps de la boucle est-il exécuté ?
  2. 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
  1. range(1, 11) donne les entiers de 1 à 10 (11 est exclu) : le corps est exécuté 10 fois.

  2. Avant la boucle, s vaut 0. À chaque tour, on ajoute la valeur du compteur i à s.

  3. Après les 10 tours, s vaut 1+2+⋯+101 + 2 + \dots + 10. En regroupant : cinq paires (1+10),(2+9),(3+8),(4+7),(5+6)(1+10), (2+9), (3+8), (4+7), (5+6) valent chacune 11, soit 5×11=555 \times 11 = 55.

  4. Le print est 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

★★☆Environ 10 min

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)
  1. Dresse le tableau d'état de v et n après chaque tour.
  2. Quelle valeur le programme affiche-t-il ?
  3. Pourquoi une boucle while est-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
  1. Au départ : v = 1, n = 0. La condition 1 <= 100 est vraie.

  2. Tours successifs, valeurs de v : 2, 4, 8, 16, 32, 64, puis 128, avec n valant 1, 2, 3, 4, 5, 6, 7.

  3. Après le tour 6, v = 64 : la condition 64 <= 100 est vraie, donc un septième tour a lieu.

  4. Après le tour 7, v = 128 : la condition 128 <= 100 est fausse, la boucle s'arrête et le programme affiche n = 7.

  5. Le nombre de tours dépend du résultat (le moment où v dé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

★★★Environ 15 min

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 €.

  1. Écris un programme Python qui répond à la question et justifie le choix de la boucle.
  2. 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
  1. Le nombre d'années n'est pas connu à l'avance : on choisit while, avec la condition de poursuite capital <= 1200.

  2. Programme : capital = 1000, annees = 0, puis while capital <= 1200: avec dans le corps capital = capital * 1.05 et annees = annees + 1, puis print(annees) après la boucle.

  3. Après 1 an : 1000×1,05=10501000 \times 1{,}05 = 1050 €. Après 2 ans : 1102,501102{,}50 €. Après 3 ans : environ 1157,631157{,}63 €.

  4. Après 3 ans, 1157,63≤12001157{,}63 \le 1200 : la boucle continue. Après 4 ans : environ 1215,511215{,}51 €, qui est supérieur à 1 200 : la boucle s'arrête.

  5. Le compteur annees vaut 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.

  1. Dans quel cas utilise-t-on naturellement une boucle bornée (for) ?

  2. Combien de fois le corps de cette boucle est-il exécuté ?

    for i in range(3, 8):
        print(i)
    

  3. Que se passe-t-il avec ce programme ?

    i = 1
    while i <= 5:
        print(i)
    

  4. Une boucle while dont la condition est fausse avant le premier tour exécute son corps une fois, puis vérifie la condition.

  5. On veut calculer le produit 1×2×3×4×51 \times 2 \times 3 \times 4 \times 5 avec une boucle. Quelle initialisation de l'accumulateur p est correcte ?

  6. Quelle instruction affiche les entiers de 1 à 10 inclus ?

  7. Quelles affirmations sur une boucle while correcte sont vraies ? (plusieurs réponses)

    Plusieurs réponses possibles.

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 b−ab - a 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

  1. Programme de mathématiques de seconde générale et technologique, Ministère de l'Éducation nationale. Consulté le 9 novembre 2026.
  2. 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.

Signaler une erreur sur cette page

Je suis en…

Primaire

  • CP Bientôt
  • CE1 Bientôt
  • CE2
  • CM1
  • CM2 Bientôt

Collège

Lycée

Supérieur

  • BTS Bientôt
  • BUT Bientôt
  • Licence Bientôt
  • Prépas Bientôt

Sur cette page