CodeGym /Cours /C# SELF /Boucle while : découverte et subtilités d'utilisation

Boucle while : découverte et subtilités d'utilisation

C# SELF
Niveau 4 , Leçon 1
Disponible

1. Introduction

En programmation, on doit souvent faire la même action plein de fois d'affilée. Par exemple :

  • Parcourir tous les éléments d'une liste.
  • Lire des valeurs au clavier tant que l'utilisateur n'a pas tapé ce qu'il faut.
  • Calculer la somme de tous les nombres de 1 à 100.
  • Demander le mot de passe à l'utilisateur jusqu'à ce qu'il soit correct.

Si tu essaies de faire tout ça sans boucle, ça va être long, chiant et impossible à maintenir. Imagine que tu codes une calculatrice et que tu additionnes les nombres de 1 à 10 à la main :

int sum = 0;
sum += 1;
sum += 2;
sum += 3;
// ... et ainsi de suite 10 fois. Pfff.
Répéter à la main sans boucle — pas pratique du tout !

Tu vas t'ennuyer avant d'avoir fini ! La solution — ce sont les boucles. Elles permettent de décrire la répétition d'actions de façon claire et concise. Aujourd'hui, on va voir la plus basique, mais super utile : la boucle while.

2. Découverte de la boucle while

Syntaxe et schéma de base

La boucle while, c'est un peu le "perroquet" de la prog : elle répète le même bout de code tant qu'une condition est vraie. Dès que la condition n'est plus vraie, le perroquet se tait (la boucle s'arrête).


while (condition)
{
    // Corps de la boucle
}
Écriture d'une boucle while avec un bloc de commandes

Diagramme

Voilà un schéma tout simple pour piger comment marche la boucle while :

3. Exemples : la boucle while en action

Le compteur classique

On va faire un petit programme qui compte de 1 à 5 et affiche les nombres :

int i = 1;
while (i <= 5)
{
    Console.WriteLine($"Étape n° {i}");
    i++; // N'oublie pas d'incrémenter le compteur !
}
// Va afficher :
// Étape n° 1
// Étape n° 2
// Étape n° 3
// Étape n° 4
// Étape n° 5

Fais gaffe : si tu oublies d'incrémenter la variable i, la boucle ne s'arrêtera jamais (ton perroquet devient immortel et répète à l'infini). On appelle ça une boucle infinie — ça fait flipper !

Saisie clavier jusqu'à la bonne valeur

Souvent, on utilise une boucle pour "forcer" l'utilisateur à donner la bonne réponse :

string password = "";
while (password != "qwerty")
{
    Console.Write("Tape ton mot de passe : ");
    password = Console.ReadLine();
}
Console.WriteLine("Bienvenue !");

Ici, le programme demande le mot de passe tant que tu n'as pas tapé le fameux "qwerty". Attention : si tu vires la ligne password = Console.ReadLine();, la boucle devient encore une fois infinie (il va demander le mot de passe mais ne lira jamais l'entrée — il va freezer comme un robot cassé).

4. Types et scénarios d'utilisation de la boucle while

Boucle while classique

Cette boucle, comme on l'a vu, vérifie la condition avant la première itération. Si la condition est fausse direct — le corps de la boucle ne s'exécutera jamais.

Exemple : condition fausse dès le début

int i = 10;
while (i < 5)
{
    Console.WriteLine(i); // Ne s'exécutera jamais !
}

Ce qui, franchement, est logique. C'est exactement ce qui est écrit ici.

Boucles while imbriquées

Parfois, il faut faire une boucle dans une boucle. Par exemple, parcourir toutes les lignes, et dans chacune vérifier tous les caractères. Pour l'instant, c'est un peu chaud, mais voilà un exemple simple :

int i = 1;
while (i <= 3)
{
    int j = 1;
    while (j <= 2)
    {
        Console.WriteLine($"i = {i}, j = {j}");
        j++;
    }
    i++;
}

// i = 1, j = 1
// i = 1, j = 2
// i = 2, j = 1
// i = 2, j = 2
// i = 3, j = 1
// i = 3, j = 2

On verra les boucles imbriquées plus en détail dans quelques leçons, c'était juste pour te faire flipper :)

Boucle infinie

Parfois les boucles s'arrêtent, parfois — elles vivent pour toujours.

while (true)
{
    Console.WriteLine("Je suis éternel !");
}

On l'utilise rarement, en général pour des trucs en arrière-plan (genre un serveur), mais ça existe aussi en vrai.

5. Comment éviter les boulettes : erreurs fréquentes avec while

En programmation, une boucle c'est comme l'électricité : c'est cool, mais faut connaître les règles de sécurité.

Problème 1 : boucle infinie par inattention

Très souvent, les débutants oublient de mettre à jour la variable dont dépend la condition. Résultat : la boucle tourne "à l'infini", et tu dois forcer l'arrêt du programme (genre avec Ctrl + C).

int i = 1;
while (i <= 5)
{
    Console.WriteLine(i);
    // i++;  // OUPS ! On a oublié d'incrémenter i
}

Problème 2 : condition mal écrite

Parfois, le dev se piège tout seul : la condition n'est jamais vraie. Du coup, la boucle ne s'exécute jamais.

int i = 10;
while (i < 5)
{
    Console.WriteLine(i); // Ce code ne s'exécutera jamais.
    i++;
}

Problème 3 : erreur de type de données

Dans la condition d'une boucle, il faut toujours une expression booléenne — c'est-à-dire que le résultat doit être true ou false.

int number = 5;
while (number) // Erreur ! On attendait un bool, pas un int.
{
    number--;
}
2
Mission
C# SELF, niveau 4, leçon 1
Bloqué
Affichage des nombres de 1 à 10
Affichage des nombres de 1 à 10
2
Mission
C# SELF, niveau 4, leçon 1
Bloqué
Somme des nombres jusqu'à une limite donnée
Somme des nombres jusqu'à une limite donnée
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION