Dies ist wirklich eine Antwort auf den Kommentar von Seanizer zur Antwort von org.life.java, aber ich wollte Code einfügen, damit ich die Kommentarfunktion nicht verwenden konnte.
Es ist zwar sehr selten, dass ich eine Verwendung für "break label" finde, aber es kommt gelegentlich vor. Der häufigste Fall ist, wenn ich nach etwas suche, das sich in einer Struktur befindet, für deren Suche eine verschachtelte Schleife erforderlich ist, z.
search:
for (State state : stateList)
{
for (City city : state.cityList)
{
if (city.zipcode.equals(wantZip))
{
doSomethingTo(city);
break search;
}
}
}
Normalerweise schiebe ich in solchen Fällen das Ganze in eine Unterroutine, damit ich bei einem Treffer das gefundene Objekt zurückgeben kann. Wenn es am Ende der Schleife herausfällt, kann ich null zurückgeben, um ein nicht gefundenes anzuzeigen, oder vielleicht eine Ausnahme auslösen. Dies ist jedoch gelegentlich nützlich.
Ehrlich gesagt denke ich, dass die Erfinder von Java diese Funktion aufgenommen haben, weil sie zwischen dieser und der Ausnahmebehandlung die letzten beiden legitimen Verwendungen für GOTO eliminiert haben.
Sehr später Nachtrag:
Ich habe einmal eine tolle Codezeile gesehen. Der Programmierer schrieb:
http://www.example.com/xyz.jsp
for (Foo foo1 : foolist)
Er sagte eigentlich nicht "example.com", sondern die Website unseres Unternehmens.
Es entsteht der Eindruck, dass der Code eine URL enthält. Es wird erfolgreich kompiliert, als würde es etwas tun. Aber ... was macht es?
In Wirklichkeit macht es nichts. "http:" ist ein Label, auf das er nie verweist. Dann macht das "//" den Rest der Zeile zu einem Kommentar.