Labeled break
Beenden Sie äußere Schleifen sauber.
Labeled break ist eine kostenlose Java Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Java Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.
Das Problem verschachtelter Schleifen
Ein einfaches break beendet nur die innere Schleife. Oft möchten Sie jedoch beide Schleifen gleichzeitig verlassen.
Stellen Sie sich vor, Sie suchen in einem Raster nach einem bestimmten Wert. Sobald Sie ihn gefunden haben, möchten Sie alles beenden, nicht nur die innere Schleife.
Java löst dieses Problem mit einem break mit Label.
Was ist ein Label?
Ein Label ist ein Name, den Sie einer Schleife voranstellen und mit einem Doppelpunkt abschließen.
Wenn Sie beispielsweise outer: direkt vor einer for-Schleife platzieren, erhält diese Schleife den Namen „outer“.
Labels bewirken allein nichts. Nützlich werden sie in Kombination mit break oder continue.
outer:
for (int i = 0; i < 3; i++) {
// 'outer' is now a name for this loop
}Syntax von break mit Label
Schreiben Sie den Namen des Labels hinter das Schlüsselwort break: break outer;
Damit weisen Sie Java an, aus der Schleife mit dem Namen outer zu springen, selbst wenn der Sprung aus einer tief verschachtelten Schleife erfolgt.
Sowohl die innere als auch die äußere Schleife werden sofort beendet.
break outer; // exits the loop labeled 'outer'break mit Label in Aktion
Hier durchsuchen wir ein 3x3-Raster. Wenn wir Spalte 2 in Zeile 2 finden, beenden wir die äußere Schleife.
Dadurch werden beide Schleifen gleichzeitig beendet, anders als bei einem einfachen break.
public class Main {
public static void main(String[] args) {
outer:
for (int row = 1; row <= 3; row++) {
for (int col = 1; col <= 3; col++) {
if (row == 2 && col == 2) {
System.out.println("Found at " + row + "," + col);
break outer;
}
}
}
System.out.println("Search over");
}
}Warum alles beendet wurde
Die Ausgabe war zunächst „Found at 2,2“ und anschließend „Search over“.
Da wir break outer verwendet haben, wurden beide Schleifen beendet. Zeile 3 wurde nie besucht.
Ein einfaches break hätte nach dem Verlassen der inneren Schleife mit Zeile 3 weitergemacht.
Die beiden break-Varianten im Vergleich
Sehen Sie sich dasselbe Raster mit einem einfachen break an.
Es verlässt nur die innere Schleife, sodass die äußere Schleife weiter durch jede Zeile läuft.
public class Main {
public static void main(String[] args) {
for (int row = 1; row <= 3; row++) {
for (int col = 1; col <= 3; col++) {
if (row == 2 && col == 2) {
break;
}
System.out.println(row + "," + col);
}
}
}
}Ein 2D-Array durchsuchen
Ein praktischer Anwendungsfall ist die Suche nach einem Zielwert in einer Matrix.
Sobald der Wert gefunden wurde, beendet ein break mit Label die gesamte Suche übersichtlich.
public class Main {
public static void main(String[] args) {
int[][] grid = {{1, 2}, {3, 9}, {5, 6}};
int target = 9;
search:
for (int r = 0; r < grid.length; r++) {
for (int c = 0; c < grid[r].length; c++) {
if (grid[r][c] == target) {
System.out.println("At row " + r + " col " + c);
break search;
}
}
}
}
}Das Label muss an einer Schleife stehen
Ein Label steht direkt vor der Schleife, die es bezeichnet. Sie können nicht zu einem Label springen, das nicht zu einer umgebenden Schleife gehört.
Wählen Sie aussagekräftige Namen wie outer, rows oder search, damit der Code natürlich lesbar bleibt.
Vermeiden Sie vage Namen wie x:, die Ihre Absicht verschleiern.
Drei Ebenen tief
Labels funktionieren auch bei drei oder mehr verschachtelten Schleifen.
Hier springt ein break mit Label beim Eintreten einer Bedingung direkt aus allen drei Schleifen heraus.
public class Main {
public static void main(String[] args) {
done:
for (int a = 1; a <= 2; a++) {
for (int b = 1; b <= 2; b++) {
for (int c = 1; c <= 2; c++) {
if (a + b + c == 4) {
System.out.println(a + "," + b + "," + c);
break done;
}
}
}
}
}
}Wann ein break mit Label hilfreich ist
Ein break mit Label ist besonders nützlich, wenn Sie mehrere Schleifen sofort beim Finden eines Ergebnisses abbrechen müssen.
Dadurch vermeiden Sie zusätzliche Flag-Variablen wie boolean found, die auf jeder Ebene geprüft werden müssten.
Sparsam eingesetzt, hält es Suchschleifen kurz und übersichtlich.
Sparsam einsetzen
Obwohl Labels leistungsfähig sind, machen zu viele davon den Code schwer nachvollziehbar.
Verwenden Sie ein break mit Label vor allem bei echten verschachtelten Suchen. Bei einfachen Schleifen ist ein einfaches break klarer.
Lesbarkeit hat immer Vorrang.
Kurze Überprüfung
Entscheiden Sie, was ein break mit Label in verschachtelten Schleifen bewirkt.
Zusammenfassung
Ein Label bezeichnet eine Schleife, und break label; beendet diese benannte Schleife, wobei alle darin verschachtelten Schleifen verlassen werden.
Das eignet sich ideal, um eine vollständig verschachtelte Suche auf einmal zu beenden. Als Nächstes sehen Sie, wie Labels mit continue funktionieren.
Häufig gestellte Fragen
Ist die Lektion „Labeled break“ kostenlos?
Ja — der vollständige Text von „Labeled break“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Java Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Labeled break“?
Beenden Sie äußere Schleifen sauber. Du übst Java Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Java Academy zu starten?
Keine Vorkenntnisse erforderlich. Java Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Labeled break“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Java Academy-Lektion Code schreiben und ausführen?
Ja. Jede Java Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.