1. Introduction
Il arrive souvent que vous n’ayez pas besoin de parcourir toutes les itérations d’une boucle jusqu’au bout, mais que vous deviez en sortir de manière anticipée — par exemple dès que vous avez trouvé l’élément recherché. Dans d’autres cas, il faut ignorer une partie du travail et passer à l’étape suivante (par exemple, vous avez lu des données et souhaitez en sauter le traitement). C’est cela, le contrôle du flux à l’intérieur d’une boucle.
Les opérateurs break et continue en Java sont conçus précisément pour cela. Voyons comment ils fonctionnent et à quoi ils servent dans des cas concrets.
2. Opérateur break : « Stop, on arrête ! »
Théorie et syntaxe
L’opérateur break est utilisé pour quitter immédiatement une boucle, où que vous vous trouviez dans son corps. Dès que l’exécution du programme atteint break, la boucle s’arrête aussitôt et l’exécution reprend à la première ligne de code après la boucle.
while (condition)
{
if (kakoe-to_condition)
{
break;
}
// le reste du code de la boucle
}
C’est la même chose pour for et do-while :
for (int i = 0; i < 10; i++)
{
if (kakoe-to_condition)
{
break;
}
// le reste du code de la boucle
}
Exemple 1 : test de primalité d’un nombre
Un nombre est premier s’il n’est divisible que par 1 et par lui-même. Nous devons vérifier la primalité d’un nombre : parcourir tous les diviseurs potentiels de 2 à n-1. S’il s’avère que notre nombre est divisible par un diviseur, il n’est pas nécessaire d’aller plus loin — le nombre n’est pas premier ! On peut arrêter la boucle.
Exemple :
int number = 111;
boolean found = false;
for (int i = 2; i < number; i++)
{
if (number % i == 0)
{
found = true;
System.out.println("Diviseur trouvé " + i );
break; // On arrête la boucle, il n'y a plus rien à chercher !
}
}
if (!found)
{
System.out.println("Aucun diviseur trouvé - le nombre est premier.");
}
Exemple 2 : validation de la saisie utilisateur
Écrivons une petite application, par exemple un questionnaire interactif pour collecter des données :
while (true)
{
System.out.print("Entrez votre âge: ");
if (console.hasNextInt())
{
int age = console.nextInt();
if (age > 0)
{
System.out.println("Parfait! Votre âge: " + age);
break; // données valides - on sort
}
else
{
System.out.println("Erreur! Entrez un âge positif.");
}
}
else
{
System.out.println("Erreur! Entrez un nombre.");
console.nextLine(); // on consomme la saisie incorrecte
}
}
Pourquoi c’est utile :
Il arrive que l’on doive faire tourner la boucle indéfiniment (ou très longtemps) jusqu’à ce que l’utilisateur saisisse des données valides. Dès que l’événement attendu se produit — on applique break et on sort définitivement de la boucle.
3. Opérateur continue : « Au suivant, s’il vous plaît ! »
Théorie et syntaxe
Contrairement à break, l’opérateur continue ne termine pas toute la boucle, il interrompt seulement l’itération en cours : tout ce qui est écrit après continue dans le corps de la boucle ne s’exécute PAS — on passe à l’itération suivante.
for (int i = 0; i < 10; i++)
{
if (condition)
{
continue;
}
// cette partie ne s'exécute que si continue ne s'est pas déclenché
}
Exemple 3 : sauter les nombres pairs
Imaginez que vous deviez afficher uniquement les nombres impairs d’un intervalle. Il faut ignorer les pairs.
for (int i = 1; i <= 10; i++)
{
if (i % 2 == 0)
{
continue; // si le nombre est pair - on saute tout ce qui suit !
}
System.out.println("Nombre impair: " + i);
}
Ce qui se passe :
Quand i = 2, 4, 6..., la boucle rencontre continue et saute immédiatement à l’itération suivante sans exécuter System.out.println.
Visualisation pas à pas :
| i | i % 2 == 0 | Action |
|---|---|---|
| 1 | false | print, pas de continue |
| 2 | true | continue, pas de print |
| 3 | false | print, pas de continue |
| ... | ... | ... |
Les opérateurs break et continue sont très utilisés — pratiquement dans une boucle sur deux. Vous allez aimer travailler avec eux.
GO TO FULL VERSION