1. breakdéclaration

Reprenons un exemple de la leçon précédente :

Code Explication
Scanner console = new Scanner(System.in);
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
Le programme lira une ligne du clavier, jusqu'à ce que vous saisissiez "exit".

Le programme lit les lignes de la console jusqu'à ce que le mot exitsoit saisi. Si vous entrez ce mot, alors la isExit variable devient true, la condition de la boucle sera , et la boucle se terminera."!isExitfalse

Java a une instruction spéciale breakqui vous permet de simplifier une telle logique. Si une breakinstruction est exécutée à l'intérieur d'une boucle, la boucle se termine immédiatement. Le programme commencera à exécuter l'instruction qui suit la boucle. L'énoncé est très bref :

break;

Voici comment vous pouvez utiliser l' breakinstruction pour réécrire l'exemple dont nous venons de parler :

Code Explication
Scanner console = new Scanner(System.in);
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
     break;
}
Le programme lira une ligne du clavier, jusqu'à ce que vous saisissiez "exit".


2. continuer la déclaration

Mais breakce n'est pas la seule instruction Java qui vous permet de contrôler le comportement d'une boucle. Java a également la continuedéclaration. Si vous exécutez une continueinstruction à l'intérieur d'une boucle, l'itération actuelle de la boucle se terminera plus tôt que prévu.

L'exécution unique du corps de la boucle s'appelle une itération de la boucle. L' continueinstruction interrompt l'itération en cours de la boucle, mais contrairement à l' breakinstruction, elle ne termine pas la boucle elle-même. La déclaration est également brève :

continue;

L' continueinstruction est super pratique dans une boucle si nous voulons "sauter" l'exécution du corps de la boucle dans certaines situations.

Tâche : Nous voulons écrire un programme qui imprime les nombres de 1à 20mais ignore les nombres divisibles par 7. Voici à quoi pourrait ressembler ce code.

Code Explication
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
     continue;
   System.out.println(i);
   i++;
}
Le programme affiche les nombres de 1à 20. Si le nombre est divisible par 7(le reste de la division par 7est 0), alors nous sautons l'affichage du nombre.

En fait, ce code ne fonctionnera pas , car iil sera à jamais bloqué sur le numéro 7. Après tout, l' continueinstruction ignore deux autres instructions : System.out.println(i)et i++. Par conséquent, une fois que nous aurons atteint la valeur 7, la variable icessera de changer et nous serons dans une boucle infinie.

Nous avons écrit le code de cette manière exprès pour illustrer cette erreur très courante. Comment pouvons-nous résoudre ce problème?

Il y a deux options ici:

Option 1 : modifier iavant d'exécuter continue, mais aprèsi % 7

Option 2 : toujours incrémenter iau début de la boucle. Mais alors ila valeur de départ doit être 0.

Option 1 Option 2
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
   {
     i++;
     continue;
   }
   
   System.out.println(i);
   i++;
}
int i = 0;
while (i < 20)
{
   i++;
   if ( (i % 7) == 0)
     continue;
   System.out.println(i);
}