Bird
Raised Fist0
PHPprogramming~20 mins

While loop execution model in PHP - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
While Loop Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this PHP while loop?
Consider the following PHP code snippet. What will it print?
PHP
<?php
$i = 3;
while ($i > 0) {
    echo $i . " ";
    $i--;
}
?>
A3 2 1
B1 2 3
C3 2 1 0
D0 1 2 3
Attempts:
2 left
💡 Hint
Remember the loop runs while the condition is true and $i decreases each time.
❓ Predict Output
intermediate
2:00remaining
How many times does this while loop run?
Look at this PHP code. How many times will the loop body execute?
PHP
<?php
$count = 0;
$num = 5;
while ($num > 2) {
    $count++;
    $num--;
}
echo $count;
A5
B4
C3
D2
Attempts:
2 left
💡 Hint
Count how many times $num is greater than 2 before the loop stops.
🔧 Debug
advanced
2:00remaining
Identify the error in this while loop code
This PHP code is supposed to print numbers 1 to 5 but causes an error or unexpected behavior. What is the problem?
PHP
<?php
$i = 1;
while ($i <= 5)
    echo $i . " ";
    $i++;
?>
AVariable $i is not initialized before the loop
BThe condition uses <= instead of <, causing an off-by-one error
CMissing semicolon after echo statement
DThe increment $i++ is outside the loop block, causing an infinite loop
Attempts:
2 left
💡 Hint
Check which statements are inside the loop and which are not.
🧠 Conceptual
advanced
2:00remaining
What happens if the while loop condition is false initially?
Consider this PHP code snippet. What will be the output?
PHP
<?php
$x = 0;
while ($x > 0) {
    echo "Looping ";
    $x--;
}
echo "Done";
APrints only 'Done'
BPrints 'Looping ' multiple times then 'Done'
CPrints nothing
DCauses an infinite loop
Attempts:
2 left
💡 Hint
Think about whether the loop body runs if the condition is false at start.
❓ Predict Output
expert
2:00remaining
What is the final value of $result after this while loop?
Analyze the PHP code below and find the value of $result after the loop finishes.
PHP
<?php
$n = 4;
$result = 1;
while ($n > 0) {
    $result *= $n;
    $n--;
}
echo $result;
A10
B24
C0
D1
Attempts:
2 left
💡 Hint
This loop multiplies $result by $n each time, decreasing $n from 4 to 1.

Practice

(1/5)
1.

What does a while loop do in PHP?

easy
A. Runs code a fixed number of times
B. Repeats code as long as a condition is true
C. Executes code only once
D. Stops the program immediately

Solution

  1. Step 1: Understand the while loop purpose

    A while loop repeats its code block while the condition remains true.
  2. Step 2: Compare options with definition

    Only Repeats code as long as a condition is true matches this behavior exactly.
  3. Final Answer:

    Repeats code as long as a condition is true -> Option B
  4. Quick Check:

    while loop = repeat while true [OK]
Hint: Remember: while loops run only if condition is true [OK]
Common Mistakes:
  • Thinking while loops run a fixed number of times
  • Confusing while with if statement
  • Assuming while loops always run at least once
2.

Which of the following is the correct syntax for a while loop in PHP?

?
easy
A. while ($i < 5); { echo $i; $i++; }
B. while $i < 5 { echo $i; $i++; }
C. while ($i < 5) { echo $i; $i++; }
D. while ($i < 5) echo $i; $i++;

Solution

  1. Step 1: Check correct while loop syntax

    In PHP, the condition must be in parentheses and the block in braces.
  2. Step 2: Identify syntax errors in options

    while ($i < 5) { echo $i; $i++; } uses correct parentheses and braces. Others miss braces, have semicolon errors, or missing parentheses.
  3. Final Answer:

    while ($i < 5) { echo $i; $i++; } -> Option C
  4. Quick Check:

    while (condition) { code } [OK]
Hint: Use parentheses for condition and braces for code block [OK]
Common Mistakes:
  • Omitting parentheses around condition
  • Adding semicolon after while condition
  • Not using braces for multiple statements
3.

What will be the output of this PHP code?

$i = 1;
while ($i <= 3) {
    echo $i . ' ';
    $i++;
}
medium
A. 1 2 3
B. 1 2 3 4
C. 123
D. 2 3 4

Solution

  1. Step 1: Trace the loop iterations

    Variable $i starts at 1 and increments by 1 each loop until $i > 3.
  2. Step 2: Determine output each iteration

    Outputs '1 ', then '2 ', then '3 '. Loop stops after $i becomes 4.
  3. Final Answer:

    1 2 3 -> Option A
  4. Quick Check:

    Prints 1 to 3 with spaces [OK]
Hint: Count from start to condition limit inclusive [OK]
Common Mistakes:
  • Including extra number after loop ends
  • Missing spaces in output
  • Confusing <= with < in condition
4.

Find the error in this PHP while loop code:

$i = 0;
while ($i < 3)
    echo $i;
    $i++;
medium
A. Condition syntax is wrong
B. echo statement is invalid
C. Variable $i is not initialized
D. Missing braces causes $i++ to run outside loop

Solution

  1. Step 1: Analyze loop structure without braces

    Without braces, only the first statement after while runs in loop.
  2. Step 2: Identify effect on $i++

    $i++ runs after loop ends, causing infinite loop because $i never increments inside loop.
  3. Final Answer:

    Missing braces causes $i++ to run outside loop -> Option D
  4. Quick Check:

    Braces needed to include all statements in loop [OK]
Hint: Use braces to group multiple statements in while loop [OK]
Common Mistakes:
  • Assuming indentation controls loop body
  • Forgetting to increment loop variable inside loop
  • Thinking condition syntax is incorrect
5.

You want to print all even numbers from 2 to 10 using a while loop in PHP. Which code correctly does this?

?
hard
A. $i = 2; while ($i <= 10) { echo $i . ' '; $i += 2; }
B. $i = 1; while ($i <= 10) { if ($i % 2 == 1) echo $i . ' '; $i++; }
C. $i = 2; while ($i < 10) { echo $i . ' '; $i += 2; }
D. $i = 0; while ($i <= 10) { echo $i . ' '; $i += 2; }

Solution

  1. Step 1: Identify correct start and condition

    Start at 2 and include 10, so condition is $i <= 10.
  2. Step 2: Check increment and output

    Increment by 2 to get even numbers only, and echo with space.
  3. Step 3: Compare options

    $i = 2; while ($i <= 10) { echo $i . ' '; $i += 2; } matches all criteria exactly. $i = 1; while ($i <= 10) { if ($i % 2 == 1) echo $i . ' '; $i++; } prints odd numbers: 1 3 5 7 9. $i = 2; while ($i < 10) { echo $i . ' '; $i += 2; } misses 10. $i = 0; while ($i <= 10) { echo $i . ' '; $i += 2; } starts at 0, which is not requested.
  4. Final Answer:

    $i = 2; while ($i <= 10) { echo $i . ' '; $i += 2; } -> Option A
  5. Quick Check:

    Start=2, end=10, step=2 [OK]
Hint: Start at 2, increment by 2, stop at 10 inclusive [OK]
Common Mistakes:
  • Starting at 0 or 1 instead of 2
  • Using < instead of <= to exclude 10
  • Not incrementing by 2 to get even numbers
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