📖 Scenario: Imagine you are managing a small warehouse with shelves and boxes. You want to find a specific box labeled "Target" among shelves and boxes. Sometimes you want to skip checking certain boxes or stop searching entirely when you find the target.
🎯 Goal: You will write a Java program that uses labeled break and labeled continue to control loops while searching for the "Target" box in a 2D array representing shelves and boxes.
📋 What You'll Learn
Create a 2D array called shelves with specific box labels.
Create a label called search for the outer loop.
Use labeled continue to skip boxes labeled "Skip".
Use labeled break to stop searching when the "Target" box is found.
Print the position of the "Target" box when found.
💡 Why This Matters
🌍 Real World
Labeled break and continue help manage complex nested loops, such as searching in grids, processing tables, or handling multi-level menus.
💼 Career
Understanding labeled break and continue is useful for writing clear and efficient code in Java, especially in jobs involving data processing, game development, or UI programming.
Progress0 / 4 steps
1
Create the shelves data structure
Create a 2D String array called shelves with these exact values: {{"Box1", "Box2", "Skip"}, {"Box3", "Target", "Box4"}, {"Skip", "Box5", "Box6"}}.
Java
Hint
Use String[][] shelves = { ... }; with the exact rows and columns.
2
Add the labeled outer loop
Add a labeled outer for loop with label search to iterate over the rows of shelves using variable i.
Java
Hint
Write search: before the outer for loop.
3
Add inner loop with labeled continue and break
Inside the search loop, add an inner for loop with variable j to iterate over shelves[i]. Use if to continue search when the box label is "Skip". Use if to break search when the box label is "Target". Print the found position with System.out.println("Found Target at shelf " + i + ", box " + j); before breaking.
Java
Hint
Use nested loops and labeled continue and break with the label search.
4
Print the final output
Run the program to print the position of the "Target" box found. The output should be exactly: Found Target at shelf 1, box 1.
Java
Hint
Make sure the print statement matches exactly and the program runs fully.
Practice
(1/5)
1. What does a labeled break statement do in Java nested loops?
easy
A. It skips the current iteration of the innermost loop.
B. It pauses the loop until a condition is met.
C. It restarts the innermost loop from the beginning.
D. It exits the loop identified by the label immediately.
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 D
Quick Check:
Labeled break = exit labeled loop [OK]
Hint: Labeled break jumps out of the named loop instantly [OK]
Common Mistakes:
Confusing labeled break with continue
Thinking it only affects the innermost loop
Assuming it pauses instead of exits
2. Which of the following is the correct syntax for a labeled continue statement in Java?
easy
A. continue: labelName;
B. continue labelName;
C. continue (labelName);
D. continue->labelName;
Solution
Step 1: Recall labeled continue syntax
The correct syntax is the keyword continue followed by the label name and a semicolon.
Step 2: Eliminate incorrect forms
Java does not use colons, parentheses, or arrows with continue statements.
Hint: Use 'continue' followed by label and semicolon [OK]
Common Mistakes:
Adding colon after continue
Using parentheses around label
Using arrow symbols instead of space
3. What is the output of the following Java code?
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 + " ");
}
}
medium
A. 1-1 2-1 3-1 3-2
B. 1-1 1-2 1-3 2-1 2-2 2-3 3-1 3-2 3-3
C. 1-1 2-1 3-1
D. 1-1 2-1 2-2 3-1 3-2
Solution
Step 1: Analyze loops and continue
When j == 2, the statement continue 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 C
Quick Check:
Labeled continue skips to next outer loop iteration [OK]
Hint: Labeled continue skips to next iteration of labeled loop [OK]
Common Mistakes:
Thinking continue skips only inner loop
Expecting all inner loop values to print
Ignoring label effect on continue
4. Identify the error in this Java code snippet using labeled break:
outer:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (i == j) break;
}
}
medium
A. The label 'outer' is not used with break or continue.
B. The break statement should be 'break outer;' to use the label.
C. Labels cannot be used with for loops.
D. The code will cause a syntax error due to missing semicolon.
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 A
Quick Check:
Unused label = no effect but no syntax error [OK]
Hint: Use label only if break or continue references it [OK]
Common Mistakes:
Assuming unused label causes syntax error
Thinking break without label breaks outer loop
Confusing label usage rules
5. Given nested loops, how would you use labeled break and continue to print only pairs (i, j) where i < j, skipping all others efficiently?
Choose the correct code snippet.
hard
A. 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 + ") ");
}
}
B. outer:
for (int i = 1; i <= 3; i++) {
inner:
for (int j = 1; j <= 3; j++) {
if (i >= j) break outer;
System.out.print("(" + i + "," + j + ") ");
}
}
C. outer:
for (int i = 1; i <= 3; i++) {
inner:
for (int j = 1; j <= 3; j++) {
if (i >= j) continue outer;
System.out.print("(" + i + "," + j + ") ");
}
}
D. outer:
for (int i = 1; i <= 3; i++) {
inner:
for (int j = 1; j <= 3; j++) {
if (i >= j) break inner;
System.out.print("(" + i + "," + j + ") ");
}
}
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 + ") ");
}
} uses continue 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 A
Quick Check:
Labeled continue to inner loop skips invalid pairs [OK]
Hint: Use 'continue inner;' to skip to next inner loop iteration [OK]
Common Mistakes:
Using break outer which stops all loops
Using continue outer which skips valid pairs as well
Using break inner which stops inner loop prematurely
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.