Chargement...

break et continue en Java

Faites une boucle sur i de 1 à 5. Quand i vaut 3, quittez la boucle avec break avant d'afficher. L'écran doit montrer seulement deux lignes : 1, puis 2. Cet arrêt anticipé est un outil de cette page. L'autre outil est continue, qui saute un passage puis poursuit la boucle pour que 3 ne s'affiche jamais, mais 4 et 5 encore.

break termine la boucle plus tôt

Créez un petit fichier de programme nommé Skip.java. La public class de la première ligne doit correspondre au nom du fichier : public class Skip. Ne laissez pas une ancienne classe Pulse ou Beat dans ce fichier ; le compilateur attend que le nom de classe et le nom de fichier concordent.
Dans main, écrivez un for qui peut s'arrêter plus tôt :
for (int i = 1; i <= 5; i = i + 1) {
if (i == 3) {
break;
}
System.out.println(i);
}
L'en-tête for a la même forme que vous connaissez déjà : début, test, pas. À l'intérieur des accolades, un if demande si i vaut 3. Quand c'est vrai, break; s'exécute. break quitte toute la boucle for d'un coup. Le println sous le if ne s'exécute pas pour ce passage, et i n'atteint jamais 4 ou 5 dans cette boucle. Quand i vaut 1 ou 2, le if est faux, donc println(i) écrit le nombre. Enregistrez le fichier avant de compiler.

Programme qui s'arrête avec break

Voici la version que vous compilez en premier.

break quand i vaut 3

java
public class Skip {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i = i + 1) {
            if (i == 3) {
                break;
            }
            System.out.println(i);
        }
    }
}

Depuis le dossier qui contient Skip.java, lancez javac Skip.java. Quand les parenthèses, les accolades et les points-virgules concordent, javac n'écrit aucune ligne de lui-même. Ensuite lancez java Skip — pas java Skip.java. Laissez de côté l'extension .java sur la deuxième commande. Les deux mêmes commandes fonctionnent sous Windows et sous macOS ; cette page ne dépend pas d'une orthographe d'interpréteur différente pour l'un ou l'autre système. Le programme doit afficher deux lignes et s'arrêter : 1, puis 2. Il ne doit pas attendre que vous tapiez. Si le terminal attend une saisie clavier, un appel nextLine d'un exercice plus ancien est encore dans le fichier. Supprimez cet appel et gardez le for avec break ci-dessus. Une mauvaise ligne à l'écran ne signifie pas que vous devez réinstaller le JDK.

Parcourez l'exécution de break dans l'ordre. i démarre à 1. Le if est faux, donc println écrit 1. Le pas stocke 2. Le if est faux, donc println écrit 2. Le pas stocke 3. Maintenant i == 3 est vrai, donc break s'exécute et le for se termine. Rien ne s'affiche pour 3, 4 ou 5. Une boucle simple sans break aurait affiché cinq lignes ; break a raccourci la boucle après deux affichages. Le pas ne s'exécute plus après break sur ce passage, et le test n'est plus demandé, car la boucle est déjà terminée.

continue saute un passage

Changez le corps pour que continue remplace break, et gardez le println après le if :
for (int i = 1; i <= 5; i = i + 1) {
if (i == 3) {
continue;
}
System.out.println(i);
}
Quand i vaut 3, continue; saute le reste de ce passage — y compris println — et le for passe au pas et au prochain test. La boucle elle-même ne se termine pas. L'écran doit montrer quatre lignes : 1, 2, 4 et 5. Le trou est là où 3 aurait dû être.

continue quand i vaut 3

java
public class Skip {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i = i + 1) {
            if (i == 3) {
                continue;
            }
            System.out.println(i);
        }
    }
}

Compilez et lancez à nouveau : javac Skip.java, puis java Skip. Vous devez voir quatre lignes. Vous n'avez pas changé l'en-tête for — seul break est devenu continue. Après avoir vu quatre lignes, vous pouvez remettre break pour revenir à la première démo. Les deux versions sont du Java valide. Elles enseignent deux mouvements anticipés différents dans la même forme de boucle.

Relisez une fois l'exécution de continue. i va 1, 2, 3, 4, 5. Pour 1 et 2 le if est faux et les nombres s'affichent. Pour 3, continue saute println. Pour 4 et 5 les nombres s'affichent à nouveau. La boucle se termine encore normalement quand i devient 6. continue ne termine jamais le for ; il saute seulement le reste d'un passage. Après continue, le for exécute encore son pas i = i + 1, donc le compteur continue d'avancer même si ce passage n'a rien affiché.

📊 outil et l'écran

Outil à i == 3 Écran
break 1 puis 2
continue 1 puis 2 puis 4 puis 5

Utilisez le tableau comme contrôle après une exécution, pas à la place d'une. break laisse deux lignes. continue laisse quatre lignes avec 3 manquant. Si 3 apparaît encore quand vous visiez continue, le println est probablement au-dessus du if — placez println sous le continue pour que le saut puisse l'atteindre. Corrigez l'ordre plutôt que de réinstaller Java.

Règles qui gardent les deux outils clairs

break et continue appartiennent au corps d'une boucle. Écrire break; seul dans main sans for ou while englobant fait échouer javac. Il en va de même pour continue;. Sur cette page un if choisit le moment : quand i vaut 3. Vous pourrez écrire d'autres tests plus tard ; les démos gardent i == 3 pour que le changement d'écran soit facile à voir.

break n'est pas continue. break termine la boucle. continue saute un passage et reste dans la boucle. Aucun des deux outils n'est ici le break de switch d'une page précédente de la même façon — ici la structure englobante est un for. Ne laissez pas un while Pulse qui ne fait que compter, ni un for Beat sans if, dans le même main et ne vous étonnez pas si tous les nombres de 1 à 5 s'affichent encore. Le main de cette session doit contenir le for plus le if avec break ou continue.

Une confusion courante est d'imprimer le mot lui-même : System.out.println("break");. Cela écrit les caractères break. Cela n'arrête pas une boucle. Une autre confusion est de mettre println(i); avant le if qui contient continue, donc 3 s'affiche encore et ensuite continue s'exécute sans rien à sauter. Gardez le println après le if dans les deux démos. Si vous écrivez continue sans boucle englobante, javac signale une erreur ; il en va de même pour un break seul hors de toute boucle. Ces deux mots n'ont de sens que dans un corps de boucle dans la forme de cette leçon.

Ce que vous pouvez faire maintenant

Vous pouvez placer break dans une boucle pour quitter plus tôt, ou continue pour sauter un passage et continuer. Un if peut choisir quand cela arrive. La page suivante est for-each, où une boucle parcourt chaque valeur d'une collection sans écrire le début, le test et le pas à la main de la même façon.

🧠 Testez Vos Connaissances

Prêt à Commencer

Testez Vos Connaissances

Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet

❓
5
Questions
🎯
70%
Pour Réussir
♾️
∞
Temps
🔄
∞
Tentatives

📝 Instructions

  • Lisez chaque question attentivement
  • Sélectionnez la meilleure réponse pour chaque question
  • Vous pouvez refaire le quiz autant de fois que vous le souhaitez
  • Votre progression sera affichée en haut