Boucles non bornées while — Seconde | AlloSeconde

coursmaths857 mots

Boucles non bornées while

Ce qu'il faut comprendre

Imagine que tu veux deviner un nombre secret entre 1 et 100. Tu proposes un nombre, on te dit « trop grand » ou « trop petit », et tu continues jusqu'à trouver le bon. Tu ne sais pas à l'avance combien de tentatives il te faudra. En programmation, c'est pareil : parfois tu as besoin de répéter une action sans savoir à l'avance combien de fois. C'est là qu'intervient la boucle while (qui signifie « tant que » en anglais).

La boucle while exécute un bloc d'instructions tant qu'une condition est vraie. Dès que la condition devient fausse, la boucle s'arrête. C'est une boucle non bornée car le nombre de répétitions n'est pas fixé à l'avance.

Les notions essentielles

Syntaxe en Python

while condition:
    instruction_1
    instruction_2
    ...
  • condition : une expression booléenne (qui vaut True ou False).
  • Les instructions indentées (décalées de 4 espaces) sont répétées tant que la condition est vraie.
  • Attention : si la condition reste toujours vraie, la boucle ne s'arrête jamais → boucle infinie !

Variable de contrôle

Pour qu'une boucle while s'arrête, il faut qu'une variable (appelée variable de contrôle) change de valeur à l'intérieur de la boucle, jusqu'à ce que la condition devienne fausse.

Exemple simple

compteur = 1
while compteur <= 5:
    print(compteur)
    compteur = compteur + 1

Ce code affiche les nombres de 1 à 5. La variable compteur augmente à chaque tour, jusqu'à dépasser 5.

Boucle infinie

while True:
    print("Je tourne en rond")

Ici, la condition est toujours vraie → la boucle ne s'arrête jamais. Pour l'interrompre, il faut utiliser Ctrl+C dans la console.

Méthode

Pour écrire une boucle while correcte, suis ces étapes :

  1. Identifier ce qu'il faut répéter : quelles instructions doivent être exécutées plusieurs fois ?
  2. Déterminer la condition d'arrêt : quand doit-on s'arrêter ? (par exemple, quand on a trouvé la réponse, quand un compteur atteint une limite, etc.)
  3. Choisir une variable de contrôle : quelle variable va évoluer pour que la condition devienne fausse ?
  4. Initialiser la variable avant la boucle : donne-lui une valeur de départ.
  5. Écrire la boucle : while condition: puis les instructions indentées, dont une qui modifie la variable de contrôle.
  6. Vérifier qu'on ne crée pas de boucle infinie : est-ce que la variable de contrôle finira par rendre la condition fausse ?

Exemple corrigé

Énoncé : Écrire un programme qui demande à l'utilisateur de deviner un nombre secret (par exemple 42). Tant que l'utilisateur n'a pas trouvé, le programme lui dit si c'est trop grand ou trop petit. À la fin, il affiche le nombre de tentatives.

Correction :

# Initialisation
secret = 42
essai = 0
tentatives = 0

# Boucle de jeu
while essai != secret:
    essai = int(input("Devine le nombre : "))
    tentatives = tentatives + 1
    if essai < secret:
        print("Trop petit !")
    elif essai > secret:
        print("Trop grand !")

# Sortie de boucle : on a trouvé
print("Bravo ! Tu as trouvé en", tentatives, "tentatives.")

Explication pas à pas :

  • On fixe le nombre secret à 42.
  • On initialise essai à 0 (n'importe quelle valeur différente de 42) et tentatives à 0.
  • La condition essai != secret est vraie tant que l'utilisateur n'a pas trouvé.
  • À chaque tour, on demande un nombre, on augmente le compteur de tentatives, et on donne un indice.
  • Quand l'utilisateur entre 42, la condition devient fausse, la boucle s'arrête, et on affiche le message de victoire.

Erreurs fréquentes

  1. Oublier d'initialiser la variable de contrôle : si tu utilises une variable sans lui donner de valeur avant la boucle, Python renvoie une erreur.
  2. Oublier de modifier la variable de contrôle dans la boucle : si la variable ne change pas, la condition reste toujours vraie → boucle infinie.
  3. Condition mal écrite : par exemple, utiliser = (affectation) au lieu de == (comparaison).
  4. Indentation incorrecte : les instructions à répéter doivent être indentées (4 espaces). Si tu mets une instruction sans indentation, elle ne fait pas partie de la boucle.
  5. Confondre while et for : for est utilisé quand on connaît le nombre de répétitions (par exemple, parcourir une liste), while quand on ne le connaît pas à l'avance.

À retenir

  • La boucle while répète un bloc d'instructions tant qu'une condition est vraie.
  • Elle nécessite une variable de contrôle qui évolue pour que la condition devienne fausse.
  • Attention aux boucles infinies : toujours vérifier que la condition peut devenir fausse.
  • Syntaxe : while condition: suivi d'instructions indentées.
  • Utilisation typique : jeux, simulations, saisie utilisateur jusqu'à obtenir une valeur valide.

Pour s'entraîner

Maintenant que tu as compris le principe, entraîne-toi avec les exercices et quiz disponibles sur AlloSeconde. Tu peux aussi utiliser un tableur pour simuler des boucles non bornées (par exemple, avec des formules conditionnelles). N'hésite pas à refaire l'exemple du jeu de devinette en modifiant le nombre secret ou en ajoutant un nombre maximum de tentatives.

Contenu enrichi le 01/07/2026857 mots