La boucle while

Définition, méthode pas à pas, exemple corrigé et exercice type contrôle de Seconde.

Maths Seconde Lecture : 5 min Programme officiel 2019

En programmation, une boucle while (tant que) permet de répéter un bloc d'instructions tant qu'une condition est vraie. La condition est évaluée avant chaque exécution du bloc. Si la condition est fausse dès le départ, le bloc d'instructions ne sera jamais exécuté.

Bon réflexe : Toujours vérifier que la boucle while a une condition de sortie pour éviter les boucles infinies.
1

Initialiser les variables

Avant la boucle, il faut donner une valeur initiale aux variables qui seront utilisées dans la condition de la boucle et dans le corps de la boucle. Ces valeurs doivent permettre à la condition d'être vraie pour que la boucle puisse s'exécuter au moins une fois (si c'est l'objectif).

2

Définir la condition

La condition doit être une expression booléenne (qui renvoie True ou False). Elle est placée après le mot-clé while et suivie de deux points :. Le bloc d'instructions indenté sera exécuté tant que cette condition est vraie.

3

Écrire le corps de la boucle

Le bloc d'instructions à répéter doit être indenté (généralement 4 espaces en Python). Ce bloc contient les opérations à effectuer à chaque itération.

4

Modifier la variable de condition

À l'intérieur du corps de la boucle, il est crucial de modifier au moins une des variables qui composent la condition. Cette modification doit, à terme, rendre la condition fausse pour que la boucle puisse se terminer. Sinon, on obtient une boucle infinie.

Écrire un programme Python qui demande à l'utilisateur de saisir un nombre entier positif. Le programme doit continuer à demander la saisie tant que le nombre n'est pas positif.
1
Initialiser la variable qui stockera le nombre
On initialise nombre à une valeur qui rendra la condition de la boucle vraie, par exemple -1, pour que la boucle s'exécute au moins une fois et demande la première saisie.
2
Définir la condition de la boucle
La boucle doit continuer tant que le nombre est inférieur ou égal à $0$. La condition est donc nombre <= 0.
3
Écrire le corps de la boucle
À l'intérieur de la boucle, on demande à l'utilisateur de saisir un nombre. On utilise int(input(...)) pour convertir la saisie en entier.
4
Vérifier la modification de la variable de condition
La variable nombre est modifiée à chaque itération par la saisie de l'utilisateur. Si l'utilisateur saisit un nombre positif, la condition nombre <= 0 deviendra fausse et la boucle se terminera.
Le programme complet est :
nombre = -1  # Initialisation pour entrer dans la boucle

while nombre <= 0:
    nombre = int(input("Veuillez saisir un nombre entier positif : "))

print(f"Vous avez saisi le nombre positif : {nombre}")
Si l'utilisateur saisit successivement -5, puis 0, puis 12, le programme affichera :
Veuillez saisir un nombre entier positif : -5
Veuillez saisir un nombre entier positif : 0
Veuillez saisir un nombre entier positif : 12
Vous avez saisi le nombre positif : 12
  1. Oublier de modifier la variable de condition à l'intérieur de la boucle. Si la condition reste toujours vraie, la boucle ne s'arrêtera jamais.
  2. Modifier la variable de condition de manière incorrecte, de sorte qu'elle ne rende jamais la condition fausse (par exemple, incrémenter une variable alors qu'elle devrait décrémenter pour atteindre la fin de la boucle).
  3. Définir une condition qui est toujours vraie dès le départ (par exemple, while True: sans instruction pour sortir de la boucle).
Écrire un programme Python qui calcule la somme des entiers de $1$ jusqu'à un nombre $N$ donné par l'utilisateur. Le programme doit demander à l'utilisateur de saisir $N$. Si $N$ n'est pas un entier strictement positif, le programme doit redemander la saisie jusqu'à obtenir une valeur valide.
  1. Écrire la partie du code qui demande $N$ et s'assure qu'il est strictement positif.
  2. Compléter le code pour calculer la somme des entiers de $1$ à $N$ en utilisant une boucle while.
  3. Afficher le résultat de la somme.
  1. Partie pour la saisie de $N$ :
    N = 0  # Initialisation pour entrer dans la boucle
    
    while N <= 0:
        N = int(input("Veuillez saisir un entier strictement positif N : "))
  2. Compléter le code pour calculer la somme :
    N = 0
    
    while N <= 0:
        N = int(input("Veuillez saisir un entier strictement positif N : "))
    
    somme = 0
    compteur = 1
    
    while compteur <= N:
        somme = somme + compteur
        compteur = compteur + 1
  3. Afficher le résultat :
    N = 0
    
    while N <= 0:
        N = int(input("Veuillez saisir un entier strictement positif N : "))
    
    somme = 0
    compteur = 1
    
    while compteur <= N:
        somme = somme + compteur
        compteur = compteur + 1
    
    print(f"La somme des entiers de 1 à {N} est : {somme}")

Questions fréquentes

Quelle est la différence entre while et for ?
La boucle while est utilisée quand on ne connaît pas à l'avance le nombre d'itérations ; elle continue tant qu'une condition est vraie. La boucle for est utilisée quand on connaît le nombre d'itérations (par exemple, pour parcourir une liste ou un intervalle de nombres précis).
Comment arrêter une boucle while prématurément ?
On peut utiliser l'instruction break à l'intérieur de la boucle. Lorsque break est rencontrée, la boucle s'arrête immédiatement et le programme continue son exécution après la boucle.
Que se passe-t-il si la condition est fausse dès le début ?
Si la condition de la boucle while est fausse dès le départ, le bloc d'instructions de la boucle ne sera jamais exécuté. Le programme passe directement aux instructions qui suivent la boucle.
Est-ce que l'indentation est importante ?
Oui, l'indentation est cruciale en Python. Elle définit les blocs de code. Toutes les instructions qui font partie du corps de la boucle while doivent être indentées au même niveau. Une mauvaise indentation entraînera une erreur de syntaxe ou un comportement inattendu du programme.

Le passage en Seconde est difficile ?

Adil accompagne les élèves de Seconde, à domicile dans le Val d'Oise ou en ligne. Un seul prof, du premier cours jusqu'au Bac.

06 20 13 00 82 Cours de maths en Seconde →