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);
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
- Entrée dans le corps de la boucle (toujours au moins une fois).
- Vérification de la condition.
- Si la condition est vraie — répéter le corps.
- 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 |
|---|---|---|---|
|
Avant | 0 fois ou plus | Quand le nombre de répétitions est inconnu à l'avance |
|
Après | 1 fois ou plus | Quand il est important d'exécuter le corps au moins une fois |
|
Avant | 0 fois ou plus | Quand le nombre d'itérations est connu |
GO TO FULL VERSION