Aller au contenu

La boucle While

"La persévérance, c’est ce qui rend l’impossible possible, le possible probable et le probable réalisé."

Robert Half


Qu’est-ce qu’une boucle while ?

Il arrive qu’on ait besoin de répéter une action sans savoir à l’avance combien de fois. Dans ce cas, la boucle for n’est plus adaptée, et c’est là que la boucle while devient utile.

La boucle while permet d’exécuter un bloc d’instructions tant qu’une condition est vraie. C’est très utile lorsqu’on ne connaît pas d’avance combien de fois l’action devra se répéter.

Image While

La boucle While

  • Ce bloc d’instructions à exécuter est à l’intérieur des accolades { }, appelées le corps de la boucle.
  • Après chaque exécution du corps de la boucle, la condition est vérifiée, et si elle est trouvée true, le corps de la boucle est exécuté à nouveau.
  • Lorsque la vérification retourne false, le corps de la boucle ne sera pas exécuté.

Structure générale

on teste la condition au début ! ce qui veut dire que le bloc d'instructions ne peut se faire que si la condition est vraie !

while (condition)
{
   instruction(s);
}

Exemples

Image title
Exemple while
Image title
Autre exemple plus complexe

Explication du code exemple complexe

Ce code illustre bien le fonctionnement d'une boucle while avec une condition contrôlée manuellement.

Voici ce qui se passe, ligne par ligne :

  1. bool isOk = false;
    → On initialise une variable booléenne isOk à false.
    Elle servira à contrôler quand arrêter la boucle.

  2. int x = 0;
    → On initialise une variable x à 0.
    Elle servira ici comme compteur.

  3. while (!isOk)
    → On démarre une boucle qui s’exécutera tant que isOk est faux.
    Comme isOk est false au début, la condition !isOk vaut true → la boucle commence.

  4. À chaque tour de boucle :

  5. Console.WriteLine(x);
    → On affiche la valeur actuelle de x.

  6. Ensuite, on teste :

    if (x == 4)
        isOk = true;
    else
        x++;
    

    • Si x vaut 4 → on arrête la boucle en mettant isOk = true.
    • Sinon → on incrémente x de 1 pour aller vers cet objectif.

⚠️ Erreurs fréquentes avec la boucle while

  • Oublier de modifier la condition → mène souvent à une boucle infinie ♾️

    Par exemple :

    int x = 0;
    while (x < 5) {
        Console.WriteLine(x);
        // x++ manquant ! la condition reste toujours vraie
    }
    

  • Écrire une condition toujours fausse → la boucle ne s’exécute jamais

    Exemple :

    int x = 10;
    while (x < 5) {
        Console.WriteLine(x);
    }
    

  • Modifier la mauvaise variable ou la condition trop tard

    Cela peut provoquer un comportement inattendu ou retarder inutilement la fin de la boucle.

  • Bonne pratique :

  • Vérifier que la condition évolue à chaque itération
  • Penser à un cas de sortie clair
  • Ajouter un système de sécurité dans certains cas (par exemple un compteur maximal) pour éviter une boucle infinie accidentelle.

break et continue

break – Quitter la boucle

Comme pour la boucle for l’instruction break permet également de sortir de la boucle while.

Exemple :

  int essais = 0;
  int valeur;

  while (essais < 5)
  {
      Console.Write("Entre un nombre supérieur à 10 : ");
      valeur = int.Parse(Console.ReadLine());

      if (valeur > 10)
      {
          Console.WriteLine("Bravo, bonne valeur !");
          // on sort de la boucle si la condition est remplie
          break; 
      }

      Console.WriteLine("Trop petit...");
      essais++;
  }

  Console.WriteLine("Fin du programme.");
Explication

Cet exemple montre comment utiliser break de manière contrôlée et justifiée : - L'utilisateur a 5 tentatives maximum (while (essais < 5)). - Si la condition (valeur > 10) est remplie, on sort de la boucle avec break. - Sinon, on continue.

Pourquoi c'est une bonne pratique : - La condition essais < 5 est clairement visible dans le while. - break est utilisé comme exception logique, pas comme la règle. - Le programme reste prévisible, structuré et sécurisé.

Résultat typique :

  Entre un nombre supérieur à 10 : 7
  Trop petit...
  Entre un nombre supérieur à 10 : 3
  Trop petit...
  Entre un nombre supérieur à 10 : 12
  Bravo, bonne valeur !
  Fin du programme.


On utilise break pour sortir tôt d'une boucle, mais *on garde la logique principale dans la condition while(...). C’est plus clair, plus propre, et plus facile à maintenir.


On peut également utiliser continue dans une boucle while, tout comme dans une boucle for. Elle est souvent moins utilisée que dans les for, mais elle reste très utile dans certains cas.

Rappel : - continuepasse immédiatement à l’itération suivante sans exécuter le reste du bloc.

  • La condition du while est retestée tout de suite après.

Exemple utiliser continue dans une boucle while

int nombre = 0;

while (nombre < 10)
{
    nombre++;

    if (nombre % 2 == 0)
      // si le nombre est pair, on passe à l’itération suivante
      continue; 

    Console.Write(nombre);
}
Dans cet exemple :

  • On incrémente nombre à chaque tour.
  • Si nombre est pair (% 2 == 0), on saute le Console.Write.
  • Sinon, on l’affiche.

Résultat affiché : 13579

Quiz

Testez vos connaissances ! 📝 Clique sur chaque question pour découvrir la réponse.

1️⃣ Quel est le rôle de la boucle while en C# ?

A. Répéter une instruction un nombre fixe de fois
B. Exécuter une instruction tant qu'une condition est vraie
C. Exécuter une seule fois un bloc d'instructions
D. C'est la même chose que la boucle for en plus simplifiée

✅ Afficher la réponse
Réponse B: Exécuter une instruction tant qu'une condition est vraie.

2️⃣ Combien de fois la boucle suivante s’exécute-t-elle ?
    int i = 0;
    while (i < 3)
    {
        Console.WriteLine(i);
        i++;
    }

A. 2 fois
B. 3 fois
C. 4 fois
D. La boucle est infinie

✅ Afficher la réponse
Réponse B: 3 fois.

3️⃣ Qu’est-ce qui peut provoquer une boucle infinie avec while ?

A. Utiliser i = i + 1 dans la boucle
B. Ne jamais modifier la variable testée
C. Mettre un break dans la boucle
D. Utiliser une condition i != 0

✅ Afficher la réponse
Réponse B: Ne jamais modifier la variable testée.

4️⃣ À quoi sert l’instruction continue dans une boucle while ?

A. Arrêter complètement la boucle
B. Sauter la boucle suivante
C. Ignorer le reste du bloc courant et passer à l’itération suivante
D. Revenir au début du programme

✅ Afficher la réponse
Réponse C: Ignorer le reste du bloc courant et passer à l’itération suivante.

5️⃣ Quel est l'effet de ce code ?
    int x = 5;
    while (x < 5)
    {
        Console.WriteLine("Bonjour");
        x++;
    }

A. Affiche "Bonjour" une fois
B. Affiche "Bonjour" cinq fois
C. Affiche "Bonjour" indéfiniment
D. N’affiche rien

✅ Afficher la réponse
Réponse D: N’affiche rien
➡️ La condition x < 5 est fausse dès le départ, donc le corps ne s’exécute jamais.


Navigation

Introduction for while do...while foreach Travail pratique


Pour aller plus loin