What if you could skip multiple steps inside nested loops with just one simple command?
Why Continue statement with levels in PHP? - Purpose & Use Cases
Imagine you have a set of nested loops, like a group of boxes inside boxes, and you want to skip certain steps deep inside without stopping everything.
Doing this by hand means writing lots of checks and conditions everywhere to jump out of the right loop.
Manually controlling which loop to skip is slow and confusing.
You might add many if-statements, making your code messy and easy to break.
It's like trying to find the right exit in a maze without signs.
The continue statement with levels lets you skip to the next cycle of a specific loop directly.
This keeps your code clean and easy to understand, like having clear signs in the maze.
foreach ($outer as $o) { foreach ($inner as $i) { if ($condition) { // complicated checks to skip inner loop continue; } } }
foreach ($outer as $o) { foreach ($inner as $i) { if ($condition) { continue 2; // skips to next outer loop iteration } } }
You can easily control which loop to continue, making nested loops simpler and your program smarter.
Think of processing a list of orders, each with multiple items. If an item is invalid, you want to skip to the next order, not just the next item.
Manually skipping nested loops is complex and error-prone.
Continue with levels lets you jump out of multiple loops cleanly.
This makes nested loop code easier to write and understand.
Practice
What does the continue statement do inside a loop in PHP?
Solution
Step 1: Understand the role of
Thecontinuein loopscontinuestatement tells the loop to skip the remaining code in the current iteration.Step 2: What happens after
The loop immediately moves to the next iteration, not stopping the entire loop.continue?Final Answer:
It skips the rest of the current loop iteration and moves to the next iteration. -> Option AQuick Check:
continueskips current iteration [OK]
- Thinking continue stops the whole loop
- Confusing continue with break
- Assuming continue pauses the program
Which of the following is the correct syntax to skip the current iteration of the outer loop in nested loops using continue in PHP?
for ($i = 0; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++) {
if ($j == 1) {
// What continue statement skips outer loop iteration?
}
}
}Solution
Step 1: Understand nested loop levels
There are two loops: outer ($i) and inner ($j). To skip outer loop iteration, we usecontinue 2;.Step 2: Apply
continue n;syntaxcontinue 2;skips the current iteration of the second enclosing loop (outer loop).Final Answer:
continue 2; -> Option AQuick Check:
continue 2;skips outer loop iteration [OK]
- Using continue without number skips inner loop only
- Using continue 1; which skips inner loop only
- Using continue 3; which is invalid here
What will be the output of the following PHP code?
for ($i = 1; $i <= 3; $i++) {
for ($j = 1; $j <= 3; $j++) {
if ($j == 2) {
continue 2;
}
echo "$i$j ";
}
}Solution
Step 1: Analyze the nested loops and continue 2;
When $j == 2,continue 2;skips the rest of the inner and outer loop iteration, moving to next $i.Step 2: Trace output for each iteration
For $i=1: $j=1 prints '11 ', $j=2 triggers continue 2; skips to $i=2.
For $i=2: $j=1 prints '21 ', $j=2 triggers continue 2; skips to $i=3.
For $i=3: $j=1 prints '31 ', $j=2 triggers continue 2; loop ends.Final Answer:
11 21 31 -> Option BQuick Check:
continue 2 skips outer loop iteration [OK]
- Assuming continue 2 skips only inner loop
- Expecting all combinations printed
- Ignoring that continue 2 skips outer loop iteration
Find the error in this PHP code snippet that tries to skip the outer loop iteration when $j == 2:
for ($i = 0; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++) {
if ($j == 2) {
continue 3;
}
echo "$i$j ";
}
}Solution
Step 1: Count the nested loops
There are only 2 loops: outer ($i) and inner ($j).Step 2: Check the continue level
continue 3;tries to skip 3 levels, but only 2 exist, causing a fatal error.Final Answer:
Using continue 3; causes a fatal error because only 2 loops exist. -> Option DQuick Check:
continue n must not exceed loop depth [OK]
- Using continue with number larger than loop depth
- Confusing continue with break
- Ignoring PHP fatal error on invalid continue level
You want to print all pairs (i, j) for i and j from 1 to 3, but skip printing pairs where j == 2 and also skip the entire outer loop iteration if i == 2. Which code snippet correctly uses continue with levels to achieve this?
Solution
Step 1: Understand the requirements
Skip printing pairs where j == 2, and skip entire outer loop iteration if i == 2.Step 2: Analyze each option
skips i == 2 outer loop correctly but skips j == 2 only in inner loop.for ($i = 1; $i <= 3; $i++) { if ($i == 2) continue; for ($j = 1; $j <= 3; $j++) { if ($j == 2) continue; echo "($i,$j) "; } }
tries to continue 2 inside inner loop after j check, but order is wrong.for ($i = 1; $i <= 3; $i++) { for ($j = 1; $j <= 3; $j++) { if ($j == 2) continue; if ($i == 2) continue 2; echo "($i,$j) "; } }
first skips outer loop iteration if i == 2 usingfor ($i = 1; $i <= 3; $i++) { for ($j = 1; $j <= 3; $j++) { if ($i == 2) continue 2; if ($j == 2) continue; echo "($i,$j) "; } }continue 2;, then skips j == 2 in inner loop.
skips outer loop iteration if either i == 2 or j == 2, which is incorrect.for ($i = 1; $i <= 3; $i++) { for ($j = 1; $j <= 3; $j++) { if ($i == 2 || $j == 2) continue 2; echo "($i,$j) "; } }Final Answer:
Option C correctly uses continue 2; to skip outer loop when i == 2 and continue to skip j == 2. -> Option CQuick Check:
Use continue 2; to skip outer loop inside inner loop [OK]
- Skipping outer loop for wrong conditions
- Using continue 2; incorrectly for inner loop skip
- Combining conditions incorrectly causing wrong skips
Ready to prove it?
Pass the test and this pattern moves unknown
