CodeGym /Cours /JAVA 25 SELF /Boucle do-while : découverte et nuances d'utilisation

Boucle do-while : découverte et nuances d'utilisation

JAVA 25 SELF
Niveau 4 , Leçon 3
Disponible

1. Découverte de la boucle do-while

Imaginez : vous écrivez un programme qui devine le nombre pensé par l'utilisateur. Il faut au moins une fois demander le nombre et répéter la demande jusqu'à ce que vous ayez deviné. Si l'on vérifie la condition à l'avance, un while classique peut ne pas entrer dans la boucle du tout.

C'est là que do-while aide. À la différence de while, elle exécutera toujours le corps de la boucle au moins une fois — même si la condition est fausse dès le départ. C'est comme recevoir un chewing-gum à la caisse, peu importe l'achat.

Syntaxe de do-while

Rien de compliqué : encore une « paire » de mots-clés en Java.


do
{
    // Corps de la boucle : ce code s'exécutera au moins une fois
}
while (condition);
Syntaxe de la boucle do-while

Attention au point-virgule ; à la fin après la parenthèse de la condition ! Dans un while classique, il n'y en a pas, alors qu'ici il y en a un — un piège classique pour les débutants.

Description des étapes de la boucle do-while

  1. Entrée dans le corps de la boucle (toujours au moins une fois).
  2. Vérification de la condition.
  3. Si la condition est vraie — répéter le corps.
  4. Si la condition est fausse — sortir de la boucle.

2. Différence par rapport au while classique

Rappelons le scénario de base d'une boucle while classique :

while (condition)
{
    // Corps de la boucle
}

Le corps ne s'exécutera pas une seule fois si la condition est fausse dès le départ !

Maintenant un exemple avec do-while :

do
{
    // Corps de la boucle
}
while (condition);

Le corps de la boucle s'exécutera au moins une fois, même si la condition est fausse immédiatement !

Illustrons la différence avec du code :

// while classique
int count = 0;
while (count > 0)
{
    System.out.println("count = " + count);
    count--;
}
// Rien ne sera affiché

// do-while
int count2 = 0;
do
{
    System.out.println("count2 = " + count2);
    count2--;
}
while (count2 > 0);
// Affichera "count2 = 0", même si la condition est fausse !

Cela peut parfois sembler « étrange », mais c'est exactement le comportement nécessaire pour la saisie utilisateur et la validation des données.

3. Scénarios pratiques d'utilisation de do-while

Où rencontre-t-on le plus souvent cette boucle ?

Validation des données

Scénario courant : demander à l'utilisateur de saisir des données valides (par exemple, un mot de passe d'au moins 6 caractères) et répéter la demande jusqu'à ce que tout soit correct.

String password;
do
{
    System.out.print("Saisissez un nouveau mot de passe (au moins 6 caractères) : ");
    password = console.nextLine();
}
while (password.length() < 6);

System.out.println("Mot de passe accepté !");

Le corps de la boucle s'exécutera au moins une fois — même si l'utilisateur saisit immédiatement un mot de passe long.

Menu dans les applications console

Un motif fréquent : afficher un menu, attendre une commande et ne quitter que sur une commande spécifique.

String command;
do
{
    System.out.println("Menu :");
    System.out.println("1. Afficher un message de bienvenue");
    System.out.println("2. Quitter");
    System.out.print("Choisissez une action : ");
    command = console.nextLine();

    if (command.equals("1")) 
    {
        System.out.println("Bonjour, monde !");
    }
    else if (!command.equals("2"))
    {
        System.out.println("Commande inconnue.");
    }
}
while (!command.equals("2"));

System.out.println("Au revoir !");

4. Tableau : comparaison de while avec d'autres boucles

Type de boucle Vérification de la condition Nombre d'exécutions possibles du corps Quand l'utiliser
while
Avant 0 fois ou plus Quand le nombre de répétitions est inconnu à l'avance
do-while
Après 1 fois ou plus Quand il est important d'exécuter le corps au moins une fois
for
Avant 0 fois ou plus Quand le nombre d'itérations est connu
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION