Um zu verdeutlichen, was Labels sind, erst einmal ein Beispiel einer nicht mit label versehenen Schleife:
for (int a = 0; a<3; a++){
for (int b =0; b<4; b++){
if (b ==3)
break;
System.out.println(“a: “+a+” b: “+b);
}
}
Hier geschieht nichts unerwartetes, die Ausgabe ist
a: 0 b: 0
a: 0 b: 1
a: 0 b: 2
a: 1 b: 0
a: 1 b: 1
a: 1 b: 2
a: 2 b: 0
a: 2 b: 1
a: 2 b: 2
Nun die Abänderung mit Label, die bewirkt, das break nicht auf der Ebene der letzten Schleife, sondern auf einer definierten Ebene zieht:
aussen: // Label, kann beliebig benannt werden
f or (int a = 0; a<3; a++){
for (int b =0; b<4; b++){
if (b ==3)
break aussen; // Hinweis, das break an dem Label “aussen” wirken soll
System.out.println(“a: “+a+” b: “+b);
}
}
Die Schleife wird also nicht innerhalb der Schleife, sondern am Punkt aussen beendet; die Ausgabe ist demnach:
a: 0 b: 0
a: 0 b: 1
a: 0 b: 2
Labels können nicht außerhalb der Anweisung, in der sie definiert wurden aufgerufen werden. Sie könnnen im übrigen auf gleicher Art und Weise bei continue angewandt werden.