C'est vraiment une réponse au commentaire de seanizer sur la réponse de org.life.java, mais je voulais mettre du code pour que je ne puisse pas utiliser la fonction de commentaire.
Bien qu'il soit très rare que je trouve une utilisation pour "break label", cela arrive parfois. Le cas le plus courant est lorsque je recherche quelque chose qui se trouve dans une structure nécessitant une boucle imbriquée pour la recherche, comme:
search:
for (State state : stateList)
{
for (City city : state.cityList)
{
if (city.zipcode.equals(wantZip))
{
doSomethingTo(city);
break search;
}
}
}
Habituellement, dans de tels cas, je pousse le tout dans un sous-programme afin que, sur un coup, je puisse renvoyer l'objet trouvé, et s'il tombe au bas de la boucle, je peux retourner null pour indiquer un non trouvé, ou peut-être lancer une exception. Mais cela est parfois utile.
Franchement, je pense que les inventeurs de Java ont inclus cette fonctionnalité car entre cela et la gestion des exceptions, ils ont éliminé les deux dernières utilisations légitimes de GOTO.
Addendum très tardif:
J'ai vu une bonne ligne de code bâillon une fois. Le programmeur a écrit:
http://www.example.com/xyz.jsp
for (Foo foo1 : foolist)
Il n'a pas vraiment dit «exemple.com» mais le site Web de notre entreprise.
Cela donne l'impression qu'il y a une URL dans le code. Il se compile avec succès, comme s'il faisait quelque chose. Mais ... qu'est-ce que ça fait?
En réalité, cela ne fait rien. "http:" est un label auquel il ne fait jamais référence. Ensuite, le "//" fait du reste de la ligne un commentaire.