Bird
Raised Fist0
PHPprogramming~7 mins

Continue statement with levels in PHP

Choose your learning style10 modes available
Introduction

The continue statement skips the rest of the current loop iteration and moves to the next one. Using levels lets you skip iterations in outer loops when you have nested loops.

When you want to skip the rest of the current loop iteration and continue with the next one.
When you have nested loops and want to skip iterations in an outer loop from inside an inner loop.
When processing multi-level data and you need to jump to the next item at a specific loop level.
When you want to avoid deeply nested if-else blocks by skipping iterations early.
Syntax
PHP
continue; // skips current iteration of the innermost loop
continue n; // skips current iteration of the nth enclosing loop

The n in continue n; must be a positive integer.

If n is omitted, it defaults to 1, meaning the innermost loop.

Examples
This skips printing when $j is 2, but continues the inner loop.
PHP
<?php
for ($i = 1; $i <= 3; $i++) {
    for ($j = 1; $j <= 3; $j++) {
        if ($j == 2) {
            continue; // skips to next $j iteration
        }
        echo "$i,$j ";
    }
}
?>
This skips the rest of the inner and outer loop iteration when $j is 2, moving to the next $i.
PHP
<?php
for ($i = 1; $i <= 3; $i++) {
    for ($j = 1; $j <= 3; $j++) {
        if ($j == 2) {
            continue 2; // skips to next $i iteration
        }
        echo "$i,$j ";
    }
}
?>
Sample Program

This program uses continue 2; to skip the rest of both loops' current iterations when $j is 2. It shows how the outer loop moves on early.

PHP
<?php
for ($i = 1; $i <= 3; $i++) {
    echo "Outer loop i=$i\n";
    for ($j = 1; $j <= 3; $j++) {
        if ($j == 2) {
            echo "  Skipping inner loop j=$j with continue 2\n";
            continue 2; // skips to next iteration of outer loop
        }
        echo "  Inner loop j=$j\n";
    }
}
?>
OutputSuccess
Important Notes

Using continue with levels helps control complex nested loops clearly.

Be careful: skipping outer loops can make code harder to read if overused.

Always test nested loops with continue n; to ensure the flow is what you expect.

Summary

continue skips the rest of the current loop iteration.

continue n; skips iterations in outer loops when nested.

This helps manage nested loops cleanly and avoid extra checks.

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