Bird
Raised Fist0
Cprogramming~10 mins

While loop in C - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - While loop
Initialize variable
↓
Check condition
|Yes↓
Execute loop body
↓
Update variable
Back to Check↓
Exit loop
↩Back to Check
The while loop starts by checking a condition. If true, it runs the loop body and updates variables, then checks again. It stops when the condition is false.
Execution Sample
C
int i = 0;
while (i < 3) {
    printf("%d\n", i);
    i++;
}
Prints numbers 0, 1, 2 by repeating the loop while i is less than 3.
Execution Table
StepiCondition (i < 3)ActionOutput
10TruePrint 0, i = i + 10
21TruePrint 1, i = i + 11
32TruePrint 2, i = i + 12
43FalseExit loop
💡 i reaches 3, condition i < 3 is False, loop stops
Variable Tracker
VariableStartAfter 1After 2After 3Final
i01233
Key Moments - 2 Insights
Why does the loop stop when i is 3 even though the loop body is not executed?
Because the condition i < 3 is checked before the loop body each time (see execution_table step 4). When i is 3, the condition is false, so the loop exits immediately.
What happens if we forget to update i inside the loop?
The condition i < 3 will always be true if i starts less than 3, causing an infinite loop. The execution_table shows i increasing each step to avoid this.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of i at step 3?
A3
B2
C1
D0
💡 Hint
Check the 'i' column in execution_table row 3.
At which step does the condition become false and the loop stops?
AStep 4
BStep 3
CStep 2
DStep 1
💡 Hint
Look at the 'Condition' column in execution_table to find when it is False.
If we remove 'i++' from the loop, what will happen?
AThe loop will stop immediately
BThe loop will print numbers 0 to 3
CThe loop will run forever printing 0
DThe program will crash
💡 Hint
Refer to key_moments about forgetting to update i causing infinite loop.
Concept Snapshot
while (condition) {
    // code to repeat
}

- Checks condition before each loop
- Runs code only if condition is true
- Updates inside loop needed to avoid infinite loops
- Stops when condition is false
Full Transcript
This example shows a while loop in C. We start with i = 0. The loop checks if i is less than 3. If yes, it prints i and adds 1 to i. This repeats until i reaches 3. When i is 3, the condition is false, so the loop stops. If we forget to increase i, the loop never ends because the condition stays true. The execution table shows each step with i's value, condition check, action, and output. This helps understand how the loop runs step-by-step.

Practice

(1/5)
1. What does a while loop do in C programming?
easy
A. Repeats a block of code while a condition is true
B. Executes code only once regardless of condition
C. Runs code a fixed number of times without checking condition
D. Stops the program immediately

Solution

  1. Step 1: Understand the purpose of a while loop

    A while loop runs repeatedly as long as its condition remains true.
  2. Step 2: Compare options with the definition

    Only Repeats a block of code while a condition is true correctly describes this behavior.
  3. Final Answer:

    Repeats a block of code while a condition is true -> Option A
  4. Quick Check:

    While loop = repeat while condition true [OK]
Hint: While loops run only if condition is true before each repeat [OK]
Common Mistakes:
  • Thinking while loop runs at least once even if condition is false
  • Confusing while loop with for loop fixed iterations
  • Believing while loop stops program immediately
2. Which of the following is the correct syntax for a while loop in C?
easy
A. while (condition) { /* code */ }
B. while condition { /* code */ }
C. while [condition] { /* code */ }
D. while: (condition) { /* code */ }

Solution

  1. Step 1: Recall C while loop syntax

    The condition must be inside parentheses and the code block inside braces.
  2. Step 2: Check each option

    Only while (condition) { /* code */ } uses correct parentheses and braces syntax.
  3. Final Answer:

    while (condition) { /* code */ } -> Option A
  4. Quick Check:

    Correct syntax uses parentheses and braces [OK]
Hint: Remember: while(condition) with parentheses and braces [OK]
Common Mistakes:
  • Omitting parentheses around condition
  • Using square brackets instead of parentheses
  • Adding colon after while keyword
3. What is the output of this C code?
int i = 1;
while (i <= 3) {
    printf("%d ", i);
    i++;
}
medium
A. 0 1 2 3
B. 1 2 3 4
C. 3 2 1
D. 1 2 3

Solution

  1. Step 1: Trace the loop variable values

    i starts at 1, prints 1, then increments to 2, prints 2, then 3, and stops after printing 3 because i becomes 4 and condition fails.
  2. Step 2: Confirm printed output

    The printed numbers are "1 2 3 " with spaces after each number.
  3. Final Answer:

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

    Prints 1 to 3 with spaces [OK]
Hint: Check loop start, end condition, and increments carefully [OK]
Common Mistakes:
  • Including 4 in output by mistake
  • Starting from 0 instead of 1
  • Printing numbers in reverse order
4. Identify the error in this code snippet:
int i = 0;
while (i < 5)
    printf("%d ", i);
medium
A. Syntax error due to missing braces
B. Missing semicolon after while condition
C. Infinite loop because i is never updated
D. Variable i is not declared

Solution

  1. Step 1: Analyze loop behavior

    Variable i starts at 0 and condition is i < 5, but i is never incremented inside the loop.
  2. Step 2: Understand consequence

    Since i never changes, the condition stays true forever, causing an infinite loop.
  3. Final Answer:

    Infinite loop because i is never updated -> Option C
  4. Quick Check:

    Loop variable must change to avoid infinite loop [OK]
Hint: Always update loop variable inside while loop [OK]
Common Mistakes:
  • Assuming loop ends without variable update
  • Thinking missing braces cause syntax error here
  • Ignoring infinite loop possibility
5. How can you modify this code to print all even numbers from 2 to 10 using a while loop?
int num = 1;
while (num <= 10) {
    printf("%d ", num);
    num++;
}
hard
A. Use a for loop instead of while loop
B. Initialize num to 2 and increment by 2 inside the loop
C. Initialize num to 0 and increment by 1 inside the loop
D. Keep num at 1 and print only if num % 2 == 0 without incrementing

Solution

  1. Step 1: Set starting point and increment for even numbers

    Start num at 2 (first even number) and increase by 2 each time to get only even numbers.
  2. Step 2: Modify loop accordingly

    Change initialization to num = 2 and inside loop do num += 2 instead of num++.
  3. Final Answer:

    Initialize num to 2 and increment by 2 inside the loop -> Option B
  4. Quick Check:

    Start at 2, add 2 each time for evens [OK]
Hint: Start at first even, add 2 each loop to get evens [OK]
Common Mistakes:
  • Not incrementing num causing infinite loop
  • Printing odd numbers by starting at 1
  • Using for loop when question asks for while loop
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