Bird
Raised Fist0
PHPprogramming~10 mins

Continue statement with levels in PHP - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Continue statement with levels
Start Outer Loop
↓
Start Inner Loop
↓
Check Continue Level
↓
Continue Inner Loop
↓
Continue Outer Loop
↓
Execute Remaining Inner Loop Code
↓
End Inner Loop
↓
End Outer Loop
The continue statement with levels skips the rest of the current loop iteration at the specified loop level, either inner or outer.
Execution Sample
PHP
<?php
for ($i = 1; $i <= 2; $i++) {
  for ($j = 1; $j <= 3; $j++) {
    if ($j == 2) continue 2;
    echo "$i$j ";
  }
}
?>
This code uses continue 2 to skip to the next iteration of the outer loop when inner loop variable $j equals 2.
Execution Table
StepijCondition (j==2)ActionOutput
111FalsePrint '11 '11
212Truecontinue 2: skip to next i
321FalsePrint '21 '21
422Truecontinue 2: skip to next i
53--i=3 > 2 exit outer loop
💡 Outer loop ends when i becomes 3, which is greater than 2.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4Final
i112233
j12212-
Key Moments - 2 Insights
Why does the output skip printing when j equals 2?
Because at step 2 and 4 in the execution_table, the condition j==2 is true and continue 2 skips the rest of both inner and outer loop iteration, so echo is not executed.
What does 'continue 2' mean in this nested loop?
'continue 2' means skip the rest of the current iteration of the outer loop, not just the inner loop. This is shown in steps 2 and 4 where it jumps to the next i.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of i at step 3?
A1
B3
C2
D0
💡 Hint
Check the 'i' column in the execution_table row for step 3.
At which step does the condition j==2 first become true?
AStep 1
BStep 2
CStep 3
DStep 4
💡 Hint
Look at the 'Condition (j==2)' column in the execution_table.
If we change 'continue 2' to 'continue 1', what would happen at step 2?
ASkip only inner loop iteration, continue outer loop normally
BSkip outer loop iteration like before
CProgram will error
DNo change in output
💡 Hint
Recall that 'continue 1' affects only the innermost loop, unlike 'continue 2'.
Concept Snapshot
continue [n] skips the rest of the current loop iteration at level n.
In nested loops, continue 1 affects inner loop, continue 2 affects outer loop.
Use to control flow precisely in nested loops.
Syntax: continue; or continue 2;
Skipping outer loop iteration can save unnecessary inner loops.
Full Transcript
This example shows how the continue statement with levels works in PHP nested loops. The outer loop runs with variable i from 1 to 2. The inner loop runs with j from 1 to 3. When j equals 2, the code uses continue 2 to skip the rest of the current iteration of the outer loop. This means it stops the inner loop and moves to the next i value. The output prints only when j is not 2. The execution table traces each step, showing variable values, condition checks, actions, and output. The variable tracker shows how i and j change after each step. Key moments clarify why output is skipped and what continue 2 means. The quiz tests understanding of variable values and continue behavior. The snapshot summarizes the concept for quick review.

Practice

(1/5)
1.

What does the continue statement do inside a loop in PHP?

easy
A. It skips the rest of the current loop iteration and moves to the next iteration.
B. It stops the entire loop immediately.
C. It restarts the whole program.
D. It pauses the loop for a moment.

Solution

  1. Step 1: Understand the role of continue in loops

    The continue statement tells the loop to skip the remaining code in the current iteration.
  2. Step 2: What happens after continue?

    The loop immediately moves to the next iteration, not stopping the entire loop.
  3. Final Answer:

    It skips the rest of the current loop iteration and moves to the next iteration. -> Option A
  4. Quick Check:

    continue skips current iteration [OK]
Hint: Remember: continue skips current iteration only [OK]
Common Mistakes:
  • Thinking continue stops the whole loop
  • Confusing continue with break
  • Assuming continue pauses the program
2.

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?
        }
    }
}
easy
A. continue 2;
B. continue 1;
C. continue;
D. continue 3;

Solution

  1. Step 1: Understand nested loop levels

    There are two loops: outer ($i) and inner ($j). To skip outer loop iteration, we use continue 2;.
  2. Step 2: Apply continue n; syntax

    continue 2; skips the current iteration of the second enclosing loop (outer loop).
  3. Final Answer:

    continue 2; -> Option A
  4. Quick Check:

    continue 2; skips outer loop iteration [OK]
Hint: Use continue n; where n = loop level to skip [OK]
Common Mistakes:
  • Using continue without number skips inner loop only
  • Using continue 1; which skips inner loop only
  • Using continue 3; which is invalid here
3.

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 ";
    }
}
medium
A. 11 13 12 22 32
B. 11 21 31
C. 11 12 13 21 22 23 31 32 33
D. 11 13 21 23 31 33

Solution

  1. 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.
  2. 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.
  3. Final Answer:

    11 21 31 -> Option B
  4. Quick Check:

    continue 2 skips outer loop iteration [OK]
Hint: continue 2 skips outer loop iteration immediately [OK]
Common Mistakes:
  • Assuming continue 2 skips only inner loop
  • Expecting all combinations printed
  • Ignoring that continue 2 skips outer loop iteration
4.

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 ";
    }
}
medium
A. The continue statement should be break 3; instead.
B. There is no error; the code runs fine.
C. The echo statement is inside the wrong loop.
D. Using continue 3; causes a fatal error because only 2 loops exist.

Solution

  1. Step 1: Count the nested loops

    There are only 2 loops: outer ($i) and inner ($j).
  2. Step 2: Check the continue level

    continue 3; tries to skip 3 levels, but only 2 exist, causing a fatal error.
  3. Final Answer:

    Using continue 3; causes a fatal error because only 2 loops exist. -> Option D
  4. Quick Check:

    continue n must not exceed loop depth [OK]
Hint: continue n; must not exceed nested loop count [OK]
Common Mistakes:
  • Using continue with number larger than loop depth
  • Confusing continue with break
  • Ignoring PHP fatal error on invalid continue level
5.

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?

hard
A.
for ($i = 1; $i <= 3; $i++) {
    if ($i == 2) continue;
    for ($j = 1; $j <= 3; $j++) {
        if ($j == 2) continue;
        echo "($i,$j) ";
    }
}
B.
for ($i = 1; $i <= 3; $i++) {
    for ($j = 1; $j <= 3; $j++) {
        if ($j == 2) continue;
        if ($i == 2) continue 2;
        echo "($i,$j) ";
    }
}
C.
for ($i = 1; $i <= 3; $i++) {
    for ($j = 1; $j <= 3; $j++) {
        if ($i == 2) continue 2;
        if ($j == 2) continue;
        echo "($i,$j) ";
    }
}
D.
for ($i = 1; $i <= 3; $i++) {
    for ($j = 1; $j <= 3; $j++) {
        if ($i == 2 || $j == 2) continue 2;
        echo "($i,$j) ";
    }
}

Solution

  1. Step 1: Understand the requirements

    Skip printing pairs where j == 2, and skip entire outer loop iteration if i == 2.
  2. Step 2: Analyze each option

    for ($i = 1; $i <= 3; $i++) {
        if ($i == 2) continue;
        for ($j = 1; $j <= 3; $j++) {
            if ($j == 2) continue;
            echo "($i,$j) ";
        }
    }
    skips i == 2 outer loop correctly but skips j == 2 only in inner loop.
    for ($i = 1; $i <= 3; $i++) {
        for ($j = 1; $j <= 3; $j++) {
            if ($j == 2) continue;
            if ($i == 2) continue 2;
            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 ($i == 2) continue 2;
            if ($j == 2) continue;
            echo "($i,$j) ";
        }
    }
    first skips outer loop iteration if i == 2 using continue 2;, then skips j == 2 in inner loop.
    for ($i = 1; $i <= 3; $i++) {
        for ($j = 1; $j <= 3; $j++) {
            if ($i == 2 || $j == 2) continue 2;
            echo "($i,$j) ";
        }
    }
    skips outer loop iteration if either i == 2 or j == 2, which is incorrect.
  3. Final Answer:

    Option C correctly uses continue 2; to skip outer loop when i == 2 and continue to skip j == 2. -> Option C
  4. Quick Check:

    Use continue 2; to skip outer loop inside inner loop [OK]
Hint: Place continue 2; before continue for inner loop skip [OK]
Common Mistakes:
  • Skipping outer loop for wrong conditions
  • Using continue 2; incorrectly for inner loop skip
  • Combining conditions incorrectly causing wrong skips
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard