Boucles (break et return, continue, labels) - 1

« Salut Amigo ! »

"Aujourd'hui, je vais vous parler de certaines choses qui sont pratiques lorsque vous travaillez avec des boucles."

"Le premier est le mot-clé break . Si vous utilisez cette commande dans le corps d'une boucle, la boucle se terminera immédiatement lorsque la commande sera exécutée. Voici un exemple :"

Exemple Sortir:
for (int i = 0; i < 10; i++)
{
System.out.println(i);
if (i > 5)
break;
}
0
1
2
3
4
5

"Le break ne peut-il être utilisé que dans une boucle ?"

"Oui. L'instruction break ne peut être utilisée que dans une boucle. Lorsqu'une instruction break est exécutée, la boucle se termine immédiatement."

"D'accord. J'ai compris."

"Génial. Maintenant, la deuxième chose que je veux partager est le mot clé continue. Il ne peut également être utilisé que dans une boucle. Lorsque cette commande est exécutée, une nouvelle itération de la boucle commence immédiatement. En d'autres termes, tout code restant dans le le corps de la boucle est simplement ignoré."

"Voici un exemple :"

Exemple Sortir:
for (int i = 0; i < 10; i++)
{
if (i % 2 == 0)
continue;
System.out.println(i);
}
1
3
5
7
9

"Donc, une fois que le programme atteint une commande continue dans une boucle, il arrête d'exécuter le code dans la boucle?"

"Non. Regarde, on a une boucle quand on exécute plusieurs fois le même code. Dans l'exemple ci-dessus, on a une boucle de 0 à 9, c'est à dire que le corps de la boucle sera exécuté 10 fois. Pas vrai ?"

"Oui."

"Un passage à travers le corps de la boucle s'appelle une itération. Notre boucle se compose de 10 itérations - le corps de la boucle sera exécuté dix fois."

"Oui, c'est clair."

"La commande continue met fin prématurément à l'itération en cours, c'est-à-dire que tout code restant à l'intérieur de la boucle est ignoré et qu'une nouvelle itération commence."

"Voici un autre exemple :"

Exemple
ArrayList list = new ArrayList();
for (Object o: list)
{
if (o == null) continue;
System.out.println(o.toString());
}

"Dans cet exemple, nous affichons une représentation sous forme de chaîne de tous les objets de la liste. Mais nous ignorons tous les objets nuls."

"OK, j'ai compris. Je peux voir à quel point c'est pratique."

"Ouais. Je veux aussi vous parler des étiquettes. Elles sont rarement utilisées en Java, car elles violent souvent la beauté de la logique d'un programme. Mais vous pouvez les rencontrer dans le code à un moment donné. Je préfère donc vous parler de eux que vous n'en avez entendu parler sur le terrain de jeu."

"Il était une fois, il était permis de sauter de n'importe quelle ligne à n'importe quelle ligne dans le code. Nous l'avons fait en utilisant des étiquettes et l'instruction goto. Voici à quoi cela ressemble :"

Code horrible avec des étiquettes
System.out.println("Make cookies,");
label: System.out.println("not");
System.out.println("war");
goto label;

"Dans cet exemple, après l'exécution de la commande goto label , le programme saute à la ligne marquée label .

"Plus tard, tout le monde a compris et a décidé de ne pas utiliser l' instruction goto . Java ne prend pas en charge goto, mais goto est un mot réservé. Ce n'est pas grave…"

"Alors, pas de goto ni d'étiquettes en Java ?"

"Il n'y a pas d'instruction goto, mais il y a des étiquettes !"

« Comment est-ce possible ? »

"En Java, les étiquettes peuvent être utilisées avec les commandes continue et break. Elles sont utilisées lorsque vous avez de nombreuses boucles imbriquées."

"Par exemple, supposons que vous ayez 5 boucles imbriquées et qu'une fois certaines conditions satisfaites, vous vouliez en sortir trois, mais pas toutes. Les étiquettes sont un moyen élégant de le faire :"

Exemple
label1: for (int i = 0; i < 10; i++)
 label2: for (int j = 0; j < 10; j++)
  label3: for (int k =0; k < 10; k++)
   if (i == j && j == k)
    break label2;

"Dans cet exemple, lorsque l'instruction break est exécutée, nous ne sortons pas de la boucle avec la variable k, mais de la boucle étiquetée label2 - c'est-à-dire que nous quittons immédiatement les deux boucles avec k et j."

"Combien de fois est-ce utilisé?"

"Pour être honnête, pas souvent, mais on ne sait jamais. Peut-être que vous le verrez un jour. Ce sont des principes fondamentaux de la syntaxe - vous devez savoir tout cela !"

"D'accord. Merci, Bilaabo."