Aller au contenu

Mathématiques · Première technologiqueÉpreuve anticipée de mathématiques

Instructions conditionnelles et boucles : cours de 1re technologique

Publié le 11 novembre 2026 · Mis à jour le 11 novembre 2026 · Signaler une erreur

L'essentiel

  • Une instruction conditionnelle (if, elif, else) choisit quel bloc exécuter selon qu'une condition est vraie ou fausse.
  • Une boucle bornée (for) répète un bloc un nombre de fois connu à l'avance ; une boucle non bornée (while) répète tant qu'une condition reste vraie.
  • En Python, l'indentation délimite les blocs : tout ce qui est décalé sous if, for ou while appartient au bloc.
  • Avec while, il faut modifier dans la boucle quelque chose qui finit par rendre la condition fausse, sinon la boucle est infinie.
  • Pour comprendre un programme, fais un tableau de suivi des variables, tour par tour.

Pourquoi des conditions et des boucles ?

Jusqu'ici, tes programmes s'exécutaient ligne après ligne, de haut en bas, sans jamais sauter ni revenir en arrière. Or, pour résoudre de vrais problèmes, il faut pouvoir choisir (si le client a moins de 12 ans, le tarif change) et répéter (calculer la somme de tous les entiers de 1 à 100 sans écrire cent additions).

Ces deux besoins correspondent à deux familles d'outils que tu retrouves dans tous les langages de programmation : les instructions conditionnelles et les boucles. Les documents officiels de mathématiques les placent ensemble dans le chapitre d'algorithmique, avec les variables 1. Tu as déjà manipulé les variables et les affectations ; ce cours s'appuie dessus.

Dans ce cours, nous verrons dans l'ordre :

  • les conditions et les booléens, c'est-à-dire ce qui peut être vrai ou faux ;
  • l'instruction if avec ses variantes else et elif ;
  • la boucle for, quand on sait combien de fois répéter ;
  • la boucle while, quand on répète tant qu'une condition est vraie ;
  • les deux mots continue et else associés aux boucles ;
  • une méthode pour suivre un programme à la main et éviter les erreurs classiques.

Les conditions et les booléens

On fabrique le plus souvent une condition avec un opérateur de comparaison :

Écriture Python Signification
a == b a est égal à b
a != b a est différent de b
a < b a est strictement inférieur à b
a <= b a est inférieur ou égal à b
a > b a est strictement supérieur à b
a >= b a est supérieur ou égal à b

Si x vaut 7, alors x > 5 donne True, x == 8 donne False et x != 8 donne True.

On peut combiner plusieurs conditions avec les mots and, or et not :

  • a and b est vrai seulement si les deux conditions sont vraies ;
  • a or b est vrai dès qu'au moins une des deux est vraie ;
  • not a est vrai quand a est fausse.

Par exemple, x >= 10 and x < 20 est vrai pour x = 15, mais faux pour x = 20, car la deuxième condition échoue.

L'instruction conditionnelle if, elif, else

La forme la plus simple s'écrit ainsi :

note = 14
if note >= 10:
    print("Admis")

La ligne if se termine par deux-points. Les lignes qui dépendent de la condition sont décalées vers la droite : on dit qu'elles sont indentées. Les blocs de code, qu'ils soient conditionnels ou répétés, reposent sur cette indentation de chaque instruction 2. Si la condition est fausse, Python saute tout le bloc et passe à la suite.

Pour prévoir aussi ce qui se passe quand la condition est fausse, on ajoute else :

note = 8
if note >= 10:
    print("Admis")
else:
    print("Refusé")

Ici, un seul des deux blocs s'exécute, jamais les deux. Avec note = 8, le programme affiche Refusé.

Quand il y a plus de deux cas, on enchaîne des tests avec elif (contraction de « else if », « sinon si ») :

age = 15
if age < 12:
    tarif = 5
elif age < 18:
    tarif = 8
else:
    tarif = 12
print(tarif)

Python teste les conditions dans l'ordre, s'arrête à la première qui est vraie et ignore les autres. Avec age = 15, la première condition est fausse, la deuxième est vraie : tarif vaut 8.

La boucle bornée for

La fonction range fabrique la suite des entiers que la variable de boucle va parcourir :

  • range(5) donne 0, 1, 2, 3, 4 (cinq valeurs, on commence à 0 et on s'arrête avant 5) ;
  • range(1, 6) donne 1, 2, 3, 4, 5 ;
  • range(0, 10, 2) donne 0, 2, 4, 6, 8 (le troisième nombre est le pas).
for i in range(1, 4):
    print("tour numéro", i)

Ce programme affiche trois lignes, pour i valant 1, puis 2, puis 3. À chaque tour, la variable i reçoit automatiquement la valeur suivante.

Pour sortir de la boucle for, il n'existe pas d'instruction à écrire : il suffit de revenir à la marge, c'est-à-dire à un niveau d'indentation moins profond 2. Tout ce qui est décalé fait partie de la boucle ; la première ligne non décalée s'exécute après la fin des répétitions.

La boucle non bornée while

Le principe : avant chaque tour, Python évalue la condition. Si elle est vraie, il exécute le bloc puis recommence. Si elle est fausse, il sort de la boucle et poursuit après.

n = 1
tours = 0
while n < 100:
    n = n * 2
    tours = tours + 1
print(n, tours)

Le tableau de suivi montre comment la boucle s'arrête :

avant le tour n n < 100 ? n après le tour
1 1 vrai 2
2 2 vrai 4
3 4 vrai 8
4 8 vrai 16
5 16 vrai 32
6 32 vrai 64
7 64 vrai 128
fin 128 faux sortie

Le programme affiche 128 7 : on a doublé sept fois pour dépasser 100.

Écrire une boucle whileQuatre étapes pour écrire une boucle while : initialiser, tester, agir et modifier, vérifier la sortie.1InitialiserDonne leur valeur de départ aux variables.2TesterÉcris la condition qui permet de continuer.3Agir et modifierFais le travail et fais évoluer la variable testée.4Vérifier la sortieAssure-toi que la condition finit par être fausse.
  1. InitialiserDonne leur valeur de départ aux variables.
  2. TesterÉcris la condition qui permet de continuer.
  3. Agir et modifierFais le travail et fais évoluer la variable testée.
  4. Vérifier la sortieAssure-toi que la condition finit par être fausse.
Écrire une boucle while · Les quatre gestes d'une boucle while sans erreur.

Choisir entre for et while

for ou while : que choisir ?
Critèreforwhile
Nombre de toursConnu à l'avanceInconnu à l'avance
PrincipeParcourt les valeurs de rangeRépète tant que la condition est vraie
Risque principalBorne de range décalée d'un cranBoucle infinie
ExempleSomme de 1 à 10Doubler jusqu'à dépasser 100
for ou while : que choisir ? · Comparaison des deux boucles.

Une règle pratique : si tu peux répondre à la question « combien de fois ? » avant de lancer la boucle, utilise for. Si la réponse dépend du déroulement du calcul (« jusqu'à ce que le seuil soit dépassé »), utilise while.

Tout programme écrit avec un for peut s'écrire avec un while, mais le for est plus court et évite d'oublier de faire avancer le compteur. C'est donc le choix à privilégier dès que le nombre de tours est connu.

Combiner conditions et boucles

La vraie puissance apparaît quand on place une instruction conditionnelle à l'intérieur d'une boucle. Chaque niveau est alors indenté un cran plus loin. Les boucles et les conditions sont des blocs de code où chaque instruction est décalée 2, et on peut les imbriquer.

compteur = 0
for n in range(1, 21):
    if n % 3 == 0:
        compteur = compteur + 1
print(compteur)

Ce programme compte les multiples de 3 entre 1 et 20 : ce sont 3, 6, 9, 12, 15 et 18, donc il affiche 6. Le if est testé à chaque tour du for, mais l'addition n'a lieu que lorsque la condition est vraie.

Python offre deux mots supplémentaires pour affiner le comportement d'une boucle :

  • continue passe directement à l'itération suivante, sans exécuter la fin du bloc 2 ;
  • else, placé après une boucle, exécute un bloc à la sortie normale de la boucle (notion facultative, hors attendus du programme) 2.
for n in range(1, 8):
    if n % 2 == 0:
        continue
    print(n)

Pour chaque nombre pair, continue saute le print. Le programme affiche donc 1, 3, 5, 7.

Suivre un programme à la main

Récapitulatif des structures

Conditions et boucles en un coup d'œilCarte mentale autour des conditions et boucles avec trois branches : if, for et while.Choisir un blocCondition vraie ou fausseUn seul bloc exécutéif / elif / elseBoucle bornéerange(a, b)Nombre de tours connuforBoucle non bornéeTant que vraiAttention boucle infiniewhileDélimite les blocsMême décalage partoutDeux-points en fin de ligneIndentationContrôle du flux

Contrôle du flux

  • if / elif / else
    • Choisir un bloc
    • Condition vraie ou fausse
    • Un seul bloc exécuté
  • for
    • Boucle bornée
    • range(a, b)
    • Nombre de tours connu
  • while
    • Boucle non bornée
    • Tant que vrai
    • Attention boucle infinie
  • Indentation
    • Délimite les blocs
    • Même décalage partout
    • Deux-points en fin de ligne
Conditions et boucles en un coup d'œil · Les trois structures du chapitre.

Exercices corrigés

Exercice 1 Somme des entiers de 1 à 10

★☆☆Environ 8 min

On considère le programme suivant :

s = 0
for i in range(1, 11):
    s = s + i
print(s)

Quelle valeur affiche-t-il ? Explique pourquoi range(1, 11) et non range(1, 10).

Indice 1

Écris la liste des valeurs prises par i, puis additionne-les.

Indice 2

Pense à ce que fait range : il s'arrête avant la borne de droite.

Voir la correction pas à pas
  1. range(1, 11) fournit les entiers 1, 2, 3, …, 10 : la borne 11 est exclue.

  2. La variable s est initialisée à 0 avant la boucle.

  3. À chaque tour, on ajoute i à s : 1, 3, 6, 10, 15, 21, 28, 36, 45, 55.

  4. Après le dixième tour, s vaut 55 et le programme affiche 55.

  5. Avec range(1, 10), on s'arrêterait à 9 et on obtiendrait 45 : il manquerait le terme 10.

Le programme affiche 55. Pour inclure la valeur 10, la borne de range doit être 11.

Exercice 2 Doubler jusqu'à dépasser 100

★★☆Environ 10 min

On exécute le programme :

n = 1
while n < 100:
    n = n * 2
print(n)

Quelle valeur est affichée ? Combien de tours la boucle a-t-elle faits ?

Indice 1

Double n tant que n est strictement inférieur à 100, et note chaque valeur.

Indice 2

Attention : la condition est testée avant chaque tour, pas après.

Voir la correction pas à pas
  1. Avant la boucle, n vaut 1.

  2. Les valeurs successives de n sont : 2, 4, 8, 16, 32, 64, 128.

  3. Pour n = 64, la condition n < 100 est vraie : la boucle fait un septième tour et n devient 128.

  4. Pour n = 128, la condition 128 < 100 est fausse : on sort de la boucle.

  5. Il y a eu 7 tours, et le programme affiche 128.

Le programme affiche 128, après 7 tours. Cela correspond à 27=1282^7 = 128, la première puissance de 2 qui dépasse 100.

Exercice 3 Un tarif selon l'âge

★★☆Environ 12 min

Un programme de tarification est écrit ainsi :

if age < 12:
    tarif = 5
elif age < 18:
    tarif = 8
else:
    tarif = 12

Un groupe est composé de trois personnes, âgées de 10, 15 et 30 ans. Quel est le prix total (en euros) payé par le groupe ?

Indice 1

Applique le programme séparément à chaque âge.

Indice 2

Souviens-toi que les tests se font dans l'ordre et que le premier vrai l'emporte.

Voir la correction pas à pas
  1. Pour age = 10 : 10 < 12 est vrai, donc tarif = 5.

  2. Pour age = 15 : 15 < 12 est faux, 15 < 18 est vrai, donc tarif = 8.

  3. Pour age = 30 : les deux tests sont faux, on exécute le else : tarif = 12.

  4. Le total est 5+8+12=255 + 8 + 12 = 25 euros.

Le groupe paie 25 euros.

Exercice 4 Compter les multiples de 3

★★★Environ 15 min

On veut compter combien d'entiers entre 1 et 50 (inclus) sont des multiples de 3.

  1. Écris un programme Python qui fait ce calcul avec une boucle for et une instruction if.
  2. Donne la valeur finale du compteur.
Indice 1

Utilise un compteur initialisé à 0 avant la boucle, et le test n % 3 == 0.

Indice 2

Les multiples de 3 jusqu'à 50 vont de 3 à 48.

Voir la correction pas à pas
  1. On initialise compteur = 0 avant la boucle.

  2. On parcourt les entiers avec for n in range(1, 51):, la borne 51 étant exclue.

  3. À chaque tour, on teste if n % 3 == 0: ; si c'est vrai, on écrit compteur = compteur + 1 dans le bloc indenté.

  4. Après la boucle, on affiche print(compteur) (sans indentation).

  5. Les multiples de 3 sont 3, 6, …, 48, soit 3×1,…,3×163 \times 1, \dots, 3 \times 16 : il y en a 16.

Le compteur final vaut 16. On peut le vérifier par le calcul : 50÷3≈16,750 \div 3 \approx 16{,}7, donc seize multiples de 3 au plus 50.

Quiz

7 questions · correction immédiate · ton score reste sur ton appareil.

  1. Quel symbole sert à comparer deux valeurs dans une condition Python, par exemple pour savoir si x vaut 7 ?

  2. On exécute age = 15 puis :

    if age < 12:
        tarif = 5
    elif age < 18:
        tarif = 8
    else:
        tarif = 12
    

    Quelle est la valeur de tarif ?

  3. Que renvoie range(2, 6) ?

  4. On exécute :

    s = 0
    for i in range(4):
        s = s + i
    

    Quelle est la valeur de s à la fin ?

  5. Quel est le défaut de ce programme ?

    n = 1
    while n < 10:
        print(n)
    

  6. Dans une boucle, l'instruction continue termine complètement la boucle.

  7. Quelles propositions sont vraies pour les boucles for et while ? (plusieurs réponses)

    Plusieurs réponses possibles.

Les questions qu'on se pose

Quelle est la différence entre une boucle for et une boucle while ?

Avec for, le nombre de répétitions est connu avant le début, par exemple range(10) fait dix tours. Avec while, on répète tant que une condition est vraie, sans savoir à l'avance combien de tours il faudra. Si tu peux annoncer le nombre de tours, prends for ; sinon, prends while.

Pourquoi mon programme ne s'arrête-t-il jamais ?

Il s'agit presque toujours d'une boucle while dont la condition reste vraie. Vérifie que le bloc modifie une variable présente dans la condition, et qu'elle évolue dans le bon sens (par exemple i = i + 1 pour une condition i <= 5). Si tu as oublié cette ligne, la boucle est infinie.

Que se passe-t-il si je me trompe d'indentation ?

Selon le cas, Python signale une erreur d'indentation, ou le programme s'exécute mais autrement que prévu : une instruction trop décalée fait partie de la boucle alors que tu voulais l'exécuter après. En Python, le décalage est la seule façon de dire quelles lignes appartiennent à un bloc. Utilise toujours le même nombre d'espaces (quatre en général).

Comment vérifier un programme avec des boucles à la main ?

Construis un tableau de suivi : une colonne par variable, une ligne par tour. Remplis-le à partir des valeurs avant la boucle, puis déroule chaque tour jusqu'à la sortie. Contrôle aussi les cas limites : la première valeur, la dernière valeur et le cas où la boucle ne s'exécute jamais.

Faut-il écrire elif ou plusieurs if ?

Utilise elif quand les cas s'excluent : un seul doit s'appliquer (tarifs selon l'âge, par exemple). Utilise des if séparés quand plusieurs résultats peuvent se cumuler. Avec des if séparés, chaque test est évalué, alors qu'avec elif, Python s'arrête au premier test vrai.

Sources

  1. Algorithmique et programmation - Document officiel Éduscol, Éduscol. Consulté le 11 novembre 2026.
  2. Repères pour l'algorithmique et programmation, Académie de Lille. Consulté le 11 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