Labeled break and continue help you control loops more precisely by naming them. This lets you jump out of or skip parts of outer loops easily.
Labeled break and continue in Java
labelName: for (initialization; condition; update) { // loop body if (condition) { break labelName; // exits the labeled loop // continue labelName; // skips to next iteration of labeled loop } }
The label is an identifier followed by a colon placed before the loop.
Use break labelName; to exit the labeled loop immediately.
Use continue labelName; to skip to the next iteration of the labeled loop.
outer: for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (i == 1 && j == 1) { break outer; } System.out.println(i + "," + j); } }
outer: for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (j == 1) { continue outer; } System.out.println(i + "," + j); } }
This program uses labeled break and continue to control nested loops. It breaks out of both loops when i=2 and j=2, and skips to the next outer loop iteration when j=3.
public class LabeledBreakContinue { public static void main(String[] args) { outer: for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) { if (i == 2 && j == 2) { System.out.println("Breaking out of outer loop at i=2, j=2"); break outer; } if (j == 3) { System.out.println("Skipping rest of outer loop iteration when j=3"); continue outer; } System.out.println("i=" + i + ", j=" + j); } } System.out.println("Loops ended."); } }
Labels must be unique identifiers placed before loops.
Using labeled break and continue can make nested loop control simpler and clearer.
Overusing labels can make code harder to read, so use them only when needed.
Labeled break and continue let you jump out of or skip iterations of outer loops from inside inner loops.
They help manage nested loops without extra flags or complicated logic.
Use labels carefully to keep code clear and easy to understand.
Practice
break statement do in Java nested loops?Solution
Step 1: Understand labeled break usage
A labeled break exits the loop that has the specified label, not just the innermost loop.Step 2: Compare with normal break
Normal break exits only the innermost loop, but labeled break can exit outer loops directly.Final Answer:
It exits the loop identified by the label immediately. -> Option DQuick Check:
Labeled break = exit labeled loop [OK]
- Confusing labeled break with continue
- Thinking it only affects the innermost loop
- Assuming it pauses instead of exits
Solution
Step 1: Recall labeled continue syntax
The correct syntax is the keywordcontinuefollowed by the label name and a semicolon.Step 2: Eliminate incorrect forms
Java does not use colons, parentheses, or arrows with continue statements.Final Answer:
continue labelName; -> Option BQuick Check:
Correct labeled continue syntax = continue labelName; [OK]
- Adding colon after continue
- Using parentheses around label
- Using arrow symbols instead of space
outer:
for (int i = 1; i <= 3; i++) {
inner:
for (int j = 1; j <= 3; j++) {
if (j == 2) continue outer;
System.out.print(i + "-" + j + " ");
}
}Solution
Step 1: Analyze loops and continue
When j == 2, the statementcontinue outer;skips the rest of the current outer loop iteration and moves to the next i.Step 2: Trace output
For i=1, j=1 prints "1-1 ". At j=2, continue outer skips to i=2. Similarly for i=2 and i=3, only j=1 prints.Final Answer:
1-1 2-1 3-1 -> Option CQuick Check:
Labeled continue skips to next outer loop iteration [OK]
- Thinking continue skips only inner loop
- Expecting all inner loop values to print
- Ignoring label effect on continue
outer:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (i == j) break;
}
}Solution
Step 1: Check label usage
The label 'outer' is declared but never referenced by break or continue statements.Step 2: Understand label necessity
Labels must be used with break or continue to have effect; otherwise, they are redundant but not syntax errors.Final Answer:
The label 'outer' is not used with break or continue. -> Option AQuick Check:
Unused label = no effect but no syntax error [OK]
- Assuming unused label causes syntax error
- Thinking break without label breaks outer loop
- Confusing label usage rules
Solution
Step 1: Understand the condition and loops
We want to print pairs where i < j only. If i >= j, skip to next j (inner loop iteration).Step 2: Analyze each option's control flow
outer: for (int i = 1; i <= 3; i++) { inner: for (int j = 1; j <= 3; j++) { if (i >= j) continue inner; System.out.print("(" + i + "," + j + ") "); } } usescontinue inner;to skip the current iteration and move to next j, efficiently skipping invalid pairs.Final Answer:
Uses continue inner; to skip when i >= j. -> Option AQuick Check:
Labeled continue to inner loop skips invalid pairs [OK]
- Using break outer which stops all loops
- Using continue outer which skips valid pairs as well
- Using break inner which stops inner loop prematurely
Ready to prove it?
Pass the test and this pattern moves unknown
