Bird
Raised Fist0
PHPprogramming~10 mins

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

Choose your learning style10 modes available
Concept Flow - Break statement with levels
Start Outer Loop i=1
↓
Start Inner Loop j=1
↓
Check Condition
Yes↓
Break with level 2
↓
Exit Inner and Outer Loops
↓
Continue after loops
The break statement with a level exits multiple nested loops at once, skipping remaining iterations.
Execution Sample
PHP
<?php
for ($i = 1; $i <= 3; $i++) {
    for ($j = 1; $j <= 3; $j++) {
        if ($j == 2) break 2;
        echo "$i,$j\n";
    }
}
?>
This code prints pairs of i and j until j equals 2, then breaks out of both loops.
Execution Table
StepijCondition (j==2)ActionOutput
111FalsePrint '1,1'1,1
212TrueBreak 2 levels (exit both loops)
3---Loops exited
💡 Break 2 levels triggered at j=2, exiting both inner and outer loops.
Variable Tracker
VariableStartAfter 1After 2Final
i11--
j12--
Key Moments - 2 Insights
Why does the break statement exit both loops instead of just the inner one?
Because the break uses a level of 2, it tells PHP to exit two nested loops at once, as shown in execution_table step 2.
What happens to the variables after the break 2 statement?
Both loops stop immediately, so variables i and j do not update further, as seen in variable_tracker final values.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the output at step 1?
A"1,1"
B"1,2"
CNo output
D"2,1"
💡 Hint
Check the Output column in execution_table row 1.
At which step does the break 2 statement cause the loops to exit?
AStep 1
BStep 2
CStep 3
DNever
💡 Hint
Look at the Action column in execution_table row 2.
If the break statement was just 'break;' without a level, what would happen?
AOnly the inner loop would exit
BBoth loops would exit
CNo loops would exit
DThe program would error
💡 Hint
Recall that break without a level exits only the current loop.
Concept Snapshot
break n;
- Exits n nested loops immediately.
- Default n=1 exits only current loop.
- Useful to stop multiple loops at once.
- Syntax: break 2; exits two loops.
- Stops further iterations after break.
Full Transcript
This example shows how the break statement with a level works in PHP. The code has two loops: outer loop with variable i and inner loop with variable j. When j equals 2, the break 2 statement runs. This causes both the inner and outer loops to stop immediately. The execution table shows step by step: first printing '1,1', then at j=2 breaking out of both loops. The variable tracker shows i and j values before the break. Key moments clarify why break 2 exits both loops and what happens to variables. The quiz tests understanding of output, break timing, and difference from break without level. The snapshot summarizes the syntax and behavior of break with levels.

Practice

(1/5)
1.

What does the break statement do in PHP loops?

easy
A. It skips the current iteration and continues the loop.
B. It pauses the loop until a condition is met.
C. It restarts the loop from the beginning.
D. It stops the current loop immediately.

Solution

  1. Step 1: Understand the purpose of break

    The break statement is used to exit a loop early when a condition is met.
  2. Step 2: Compare options

    The description "It stops the current loop immediately." correctly describes break. "It skips the current iteration..." describes continue. Restarting or pausing are incorrect.
  3. Final Answer:

    It stops the current loop immediately. -> Option D
  4. Quick Check:

    break stops loop [OK]
Hint: Break stops loops immediately, no more iterations [OK]
Common Mistakes:
  • Confusing break with continue
  • Thinking break pauses instead of stops
  • Assuming break restarts the loop
2.

Which of the following is the correct syntax to break out of 2 nested loops in PHP?

for (...) {
    for (...) {
        // break here
    }
}
easy
A. break;
B. break(2);
C. break 2;
D. break 1;

Solution

  1. Step 1: Recall break syntax with levels

    To exit multiple nested loops, PHP uses break n; where n is the number of loops to break out of.
  2. Step 2: Identify correct syntax

    break 2; correctly breaks out of 2 loops. break(2); is invalid syntax. A plain break; or break 1; breaks only one loop.
  3. Final Answer:

    break 2; -> Option C
  4. Quick Check:

    break 2; exits 2 loops [OK]
Hint: Use break n; to exit n nested loops in PHP [OK]
Common Mistakes:
  • Using break(2) which is invalid syntax
  • Forgetting to specify number for multiple loops
  • Using break 1; when 2 loops need exit
3.

What is the output of this PHP code?

$count = 0;
for ($i = 0; $i < 3; $i++) {
    for ($j = 0; $j < 3; $j++) {
        $count++;
        if ($i + $j == 2) {
            break 2;
        }
    }
}
echo $count;
medium
A. 5
B. 3
C. 4
D. 6

Solution

  1. Step 1: Trace nested loops and break condition

    Loops run with i and j from 0 to 2. The break triggers when i + j == 2, breaking out of both loops immediately. count++ occurs before the check.
  2. Step 2: Simulate iterations

    - i=0,j=0: count=1 (sum=0 !=2)
    - i=0,j=1: count=2 (sum=1 !=2)
    - i=0,j=2: count=3 (sum=2 ==2), break 2; loops stop
    Total count = 3.
  3. Final Answer:

    3 -> Option B
  4. Quick Check:

    3 increments before break 2 exits both loops [OK]
Hint: Count increments before break; break n exits n loops [OK]
Common Mistakes:
  • Counting increments after break condition
  • Ignoring break level effect
  • Assuming break only exits inner loop
4.

Find the error in this PHP code snippet:

for ($i = 0; $i < 3; $i++) {
    for ($j = 0; $j < 3; $j++) {
        if ($i == $j) {
            break 3;
        }
        echo "$i,$j\n";
    }
}
medium
A. break 3; is invalid because only 2 loops exist.
B. break 3; should be break 2; to exit both loops.
C. break 3; causes infinite loop.
D. No error, code runs fine.

Solution

  1. Step 1: Count nested loops

    There are 2 nested loops: outer and inner.
  2. Step 2: Check break level usage

    Using break 3; tries to break out of 3 loops, but only 2 exist, causing a fatal error.
  3. Final Answer:

    break 3; is invalid because only 2 loops exist. -> Option A
  4. Quick Check:

    break n must be ≤ nested loops count [OK]
Hint: Break level cannot exceed nested loops count [OK]
Common Mistakes:
  • Using break level higher than loops
  • Assuming break 3 exits 2 loops
  • Ignoring PHP fatal error on invalid break level
5.

You want to stop processing nested loops early when a condition is met, but only exit the inner loop sometimes and both loops other times. Which code snippet correctly uses break with levels?

for ($i = 0; $i < 5; $i++) {
    for ($j = 0; $j < 5; $j++) {
        if ($i == 2 && $j == 3) {
            break 2; // exit both loops
        } elseif ($j == 4) {
            break; // exit inner loop only
        }
        echo "$i,$j\n";
    }
}
hard
A. Correct use of break with levels to control loop exit.
B. break 2; should be break 1; to exit both loops.
C. break; cannot be used inside nested loops.
D. break 2; exits only the inner loop.

Solution

  1. Step 1: Understand break with levels usage

    break 2; exits two loops, break; exits only the current loop.
  2. Step 2: Analyze code logic

    When $i==2 && $j==3, both loops exit with break 2;. When $j==4, only inner loop exits with break;. This matches the requirement.
  3. Final Answer:

    Correct use of break with levels to control loop exit. -> Option A
  4. Quick Check:

    break n exits n loops, break exits current loop [OK]
Hint: Use break n; for multiple loops, break; for single loop exit [OK]
Common Mistakes:
  • Confusing break 2; with break 1;
  • Thinking break; exits all loops
  • Misusing break levels causing logic errors
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