Aller au contenu

La boucle Do...While

"Le do...while, c’est comme dire : ‘Fais-le au moins une fois, puis on en reparle.’"

Un développeur prudent

Qu’est-ce qu’une boucle do...while ?

La boucle do...while permet d’exécuter au moins une fois un bloc d’instructions, puis de répéter tant qu’une condition est vraie.

C’est la seule boucle qui vérifie la condition après l’exécution.
Elle est donc utile lorsque : - L’action doit être faite au moins une fois - On ne peut tester la condition qu’après une première tentative


Elle ressemble à la déclaration while, sauf qu’elle teste la condition à la fin du corps de la boucle.

Image title
Exemple while

Structure générale

do
{
    instructions;
}
while (condition);
  • Le bloc do s’exécute une première fois, sans test
  • Ensuite, la condition est évaluée
  • Si elle est vraie ➜ le bloc est répété
  • Si elle est fausse ➜ la boucle s’arrête

Exemple simple

int compteur = 1;

do
{
    Console.WriteLine("Compteur = " + compteur);
    compteur++;
}
while (compteur <= 3);

🔁 Résultat :

Compteur = 1
Compteur = 2
Compteur = 3


⚠️ Différence avec la boucle while

// Boucle while
int a = 10;
while (a < 5)
{
    Console.WriteLine("Bonjour");
}

➡️ Ici, le message ne s’affichera jamais, car la condition est fausse dès le début.

// Boucle do...while
int b = 10;
do
{
    Console.WriteLine("Bonjour");
}
while (b < 5);

➡️ Ici, le message s’affiche une fois, même si la condition est fausse.


Utilisation concrète : saisie utilisateur

string reponse;
do
{
    Console.Write("Voulez-vous recommencer ? (oui/non) : ");
    reponse = Console.ReadLine();
}
while (reponse == "oui");

🔹 On garantit que la question sera posée au moins une fois, peu importe la réponse initiale.


⚠️ Erreurs fréquentes

  • ❌ Oublier le ; à la fin du while
  • ❌ Oublier de modifier une variable dans la boucle ➜ boucle infinie
  • ❌ Mauvaise condition ➜ répétition inattendue

Quiz

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

1️⃣ Quand utilise-t-on la boucle do...while de préférence ?

A. Quand on veut que le code ne s’exécute jamais
B. Quand on connaît le nombre exact d’itérations
C. Quand on souhaite que le bloc s’exécute au moins une fois
D. Quand on veut interrompre une boucle dès le départ
E. Quand on veut trier un tableau

✅ Afficher la réponse
Réponse C: Quand on souhaite que le bloc s’exécute au moins une fois.

2️⃣ Quelle est la sortie du programme suivant ?
int i = 5;
do
{
    Console.WriteLine(i);
    i++;
}
while (i < 5);

A. Aucun affichage
B. 5
C. 5 6
D. 5 6 7 8 9
E. Boucle infinie

✅ Afficher la réponse
Réponse B: La condition est fausse, mais la boucle s’exécute une fois.

3️⃣ Quelle est la bonne syntaxe d’une boucle do...while ?

A. do { instructions }
B. do while(condition) { instructions }
C. do { instructions; } while (condition)
D. while (condition) { instructions }
E. foreach (var i in collection) { instructions }

✅ Afficher la réponse
Réponse C: La syntaxe correcte est do { ... } while (condition);

4️⃣ Que se passe-t-il si la condition est fausse dès le début ?

A. Le bloc ne s'exécute pas du tout
B. La boucle génère une erreur
C. Le bloc s'exécute en boucle infinie
D. Le bloc s’exécute une fois quand même
E. Le programme redémarre

✅ Afficher la réponse
Réponse D: Le bloc do est exécuté une fois avant la condition.

5️⃣ Quel est le problème avec ce code ?
int i = 1;
do
{
    Console.WriteLine(i);
}
while (i < 5);

A. Rien, il fonctionne normalement
B. Il manque une déclaration de la variable i
C. Il va boucler à l’infini car i n’est jamais modifié
D. Le while n’a pas de parenthèses
E. Il affiche directement 5 sans boucle

✅ Afficher la réponse
Réponse C: La variable i n’est pas modifiée ➜ boucle infinie.


Navigation

Introduction for while do...while foreach Travail pratique


Pour aller plus loin