Boucle do...while en Java
Utilisez la boucle do...while en Java pour exécuter un bloc au moins une fois avant de vérifier la condition.
La boucle do/while est le miroir de la boucle while : elle exécute le corps en premier, puis vérifie la condition. Le résultat est une boucle garantie de s'exécuter au moins une fois — même si la condition était fausse dès le départ. Cette page couvre la syntaxe, les différences avec while, les cas d'utilisation appropriés, et un piège courant lié à la portée des variables.
Syntaxe
do {
// body — runs at least once
} while (condition);Remarquez le point-virgule en fin de ligne après while (condition) — facile à oublier, et le compilateur vous le signalera si c'est le cas.
Un équivalent direct à l'exemple de compteur avec while :
int i = 1;
do {
System.out.println(i);
i++;
} while (i <= 5);Résultat : 1 2 3 4 5 — identique à la version avec while, mais le corps s'exécute toujours en premier.
Quand la condition est fausse dès le départ
C'est là que do/while diffère de while :
int i = 10;
do {
System.out.println(i); // prints 10 once
i++;
} while (i < 5);Le corps s'exécute une fois, puis la condition 10 < 5 est fausse et la boucle se termine. Un simple while aurait ignoré le corps entièrement.
Quand utiliser do/while
Le cas d'usage classique est la validation des saisies — vous devez d'abord lire la saisie pour savoir si elle est valide :
import java.util.Scanner;
Scanner s = new Scanner(System.in);
int n;
do {
System.out.print("Enter a positive number: ");
n = s.nextInt();
} while (n <= 0);Un autre usage naturel est les boucles de menu — vous souhaitez toujours afficher le menu au moins une fois :
int choice;
do {
showMenu();
choice = readChoice();
handle(choice);
} while (choice != 0);Dans les deux cas, exprimer la boucle avec un simple while impliquerait de dupliquer le travail de la première itération en dehors de la boucle, ou d'utiliser une variable sentinelle. do/while est plus propre.
Note sur la portée des variables
Une variable déclarée à l'intérieur du corps n'est pas visible par la condition while :
do {
int x = readValue();
} while (x > 0); // compile error: x not in scopeDéclarez-la à l'extérieur :
int x;
do {
x = readValue();
} while (x > 0);À quelle fréquence l'utiliserez-vous réellement
En pratique, do/while est la moins utilisée des trois boucles Java. La plupart des boucles savent si elles doivent s'exécuter avant la première itération, donc while et for les couvrent. Mais lorsque « exécuter une fois puis peut-être à nouveau » est la description naturelle, do/while est l'expression la plus claire.
Un exemple concret
Prochaine étape
La boucle Java la plus courante est la boucle for, qui regroupe un compteur, une condition et une étape de mise à jour dans un en-tête compact.