Gelabelde break
Beëindig buitenste lussen netjes.
Gelabelde break is een gratis Java Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Java Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Java Academy bevat in totaal 4 lessen.
Het probleem met geneste lussen
Een gewone break verlaat alleen de binnenste lus. Vaak wil je echter beide lussen tegelijk verlaten.
Stel je voor dat je in een rooster naar één waarde zoekt. Zodra je die vindt, wil je alles stoppen, niet alleen de binnenste lus.
Java lost dit op met een break met label.
Wat is een label?
Een label is een naam die je aan een lus koppelt, gevolgd door een dubbele punt.
Als je bijvoorbeeld outer: direct vóór een for-lus plaatst, geef je die lus de naam "outer".
Labels doen op zichzelf niets. Ze worden nuttig in combinatie met break of continue.
outer:
for (int i = 0; i < 3; i++) {
// 'outer' is now a name for this loop
}Syntaxis van een break met label
Schrijf de naam van het label na het sleutelwoord break: break outer;
Hiermee geef je Java opdracht de lus met de naam outer te verlaten, zelfs vanuit een diep geneste lus.
Zowel de binnenste als de buitenste lus stopt onmiddellijk.
break outer; // exits the loop labeled 'outer'Een break met label in actie
Hier zoeken we in een rooster van 3 bij 3. Wanneer we col 2 in rij 2 vinden, verlaten we de buitenste lus met break.
Dit stopt beide lussen tegelijk, in tegenstelling tot een gewone 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");
}
}Waarom alles stopte
De uitvoer was eerst "Gevonden op 2,2" en daarna "Zoeken voltooid".
Omdat we break outer gebruikten, eindigden beide lussen. Rij 3 werd nooit bezocht.
Met een gewone break was de uitvoering na het verlaten van alleen de binnenste lus doorgegaan naar rij 3.
De twee breaks vergelijken
Bekijk hetzelfde rooster nu met een gewone break.
Die verlaat alleen de binnenste lus, waardoor de buitenste lus door alle rijen blijft gaan.
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);
}
}
}
}Zoeken in een 2D-array
Een realistische toepassing is het vinden van een doelwaarde in een matrix.
Zodra de waarde is gevonden, beëindigt een break met label de volledige zoekactie op een nette manier.
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;
}
}
}
}
}Het label moet bij een lus staan
Een label staat direct vóór de lus die het benoemt. Je kunt niet naar een label springen dat niet bij een omringende lus hoort.
Kies duidelijke namen zoals outer, rows of search, zodat de code natuurlijk leest.
Vermijd vage namen zoals x:, die je bedoeling verbergen.
Drie niveaus diep
Labels werken ook met drie of meer geneste lussen.
Hier springt een break met label rechtstreeks uit alle drie de lussen zodra aan een voorwaarde is voldaan.
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;
}
}
}
}
}
}Wanneer een break met label helpt
Een break met label is bijzonder handig wanneer je meerdere lussen onmiddellijk moet verlaten zodra je een resultaat vindt.
Zo vermijd je extra vlagvariabelen zoals boolean found die op elk niveau worden gecontroleerd.
Als je het spaarzaam gebruikt, houdt het zoeklussen kort en overzichtelijk.
Gebruik het spaarzaam
Hoewel labels krachtig zijn, maken te veel labels code moeilijk te volgen.
Gebruik vooral een break met label bij echte geneste zoekacties. Bij eenvoudige lussen is een gewone break duidelijker.
Leesbaarheid wint altijd.
Korte controle
Bepaal wat een break met label doet bij geneste lussen.
Samenvatting
Een label benoemt een lus en break label; verlaat die benoemde lus, inclusief alle lussen die daarin genest zijn.
Dit is ideaal om een volledige geneste zoekactie in één keer te stoppen. Hierna zie je hoe labels met continue werken.
Leer Java met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 104
- Lessen
- 374
Veelgestelde vragen
Is de les “Gelabelde break” gratis?
Ja — de volledige tekst van “Gelabelde break” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Java Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Java Academy bevat in totaal 4 lessen.
Wat leer ik in “Gelabelde break”?
Beëindig buitenste lussen netjes. Je oefent met Java Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Java Academy te beginnen?
Ervaring vooraf is niet nodig. Java Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Gelabelde break”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Java Academy?
Ja. Elke les over Java Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- break en continue
- Gelabelde break
- Gelabelde continue
- Spaghettistroom vermijden