Définition
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é.
while a une condition de sortie pour éviter les boucles infinies.
Méthode : La boucle while
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).
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.
É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.
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.
Exemple résolu
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.nombre <= 0.int(input(...)) pour convertir la saisie en entier.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.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 : 12Piège fréquent en Seconde : la boucle infinie
- 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.
- 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).
- Définir une condition qui est toujours vraie dès le départ (par exemple,
while True:sans instruction pour sortir de la boucle).
Exercice type contrôle
É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.- Écrire la partie du code qui demande $N$ et s'assure qu'il est strictement positif.
- Compléter le code pour calculer la somme des entiers de $1$ à $N$ en utilisant une boucle
while. - Afficher le résultat de la somme.
- 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 : ")) - 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 - 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 ?
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 ?
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 ?
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 ?
while doivent être indentées au même niveau. Une mauvaise indentation entraînera une erreur de syntaxe ou un comportement inattendu du programme.Pour aller plus loin
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.