Bird
Raised Fist0
Cprogramming~10 mins

Do–while loop in C - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Do–while loop
Start
↓
Execute body
↓
Check condition
Yes↓
Execute body
No↓
Exit
The do–while loop runs the code inside the loop first, then checks the condition. If true, it repeats; if false, it stops.
Execution Sample
C
int i = 1;
do {
    printf("%d ", i);
    i++;
} while (i <= 3);
This code prints numbers 1 to 3 using a do–while loop.
Execution Table
Stepi valueCondition (i <= 3)ActionOutput
11TruePrint 1, i = i + 11
22TruePrint 2, i = i + 12
33TruePrint 3, i = i + 13
44FalseExit loop
💡 i becomes 4, condition 4 <= 3 is False, loop stops
Variable Tracker
VariableStartAfter 1After 2After 3Final
i12344
Key Moments - 3 Insights
Why does the loop body run even when the condition is false at the start?
Because the do–while loop runs the body first before checking the condition, as shown in step 1 of the execution_table.
When does the condition get checked in a do–while loop?
The condition is checked after the loop body executes, as seen between steps 1 and 2 in the execution_table.
What happens when the condition becomes false?
The loop stops immediately after the condition check, as shown in step 4 where i=4 and condition is false.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of i at step 3?
A4
B2
C3
D1
💡 Hint
Check the 'i value' column at step 3 in the execution_table.
At which step does the condition become false and the loop stops?
AStep 2
BStep 4
CStep 3
DStep 1
💡 Hint
Look at the 'Condition' column and 'Action' column in the execution_table.
If the initial value of i was 5, how many times would the loop body run?
A1 time
B0 times
C5 times
DInfinite times
💡 Hint
Remember the do–while loop runs the body once before checking the condition.
Concept Snapshot
do {
  // code to run
} while (condition);

- Runs code block once before checking condition
- Repeats while condition is true
- Always runs at least once
- Condition checked after loop body
Full Transcript
A do–while loop in C runs the code inside the loop first, then checks the condition. If the condition is true, it repeats the loop. If false, it stops. This means the loop body always runs at least once, even if the condition is false at the start. For example, starting with i = 1, the loop prints i and increases it by 1 each time. It stops when i becomes 4 because the condition i <= 3 is false. This is different from a while loop that checks the condition before running the body. The key steps are: run the body, check the condition, repeat if true, exit if false.

Practice

(1/5)
1. What is the main difference between a do-while loop and a while loop in C?
easy
A. A do-while loop cannot be used with integers.
B. A do-while loop checks the condition before executing the code block.
C. A do-while loop executes the code block at least once before checking the condition.
D. A do-while loop does not require a semicolon after the while condition.

Solution

  1. Step 1: Understand the execution order of loops

    A while loop checks the condition first, so it may not run the code block if the condition is false initially.
  2. Step 2: Identify the behavior of do-while loop

    A do-while loop runs the code block once before checking the condition, ensuring at least one execution.
  3. Final Answer:

    A do-while loop executes the code block at least once before checking the condition. -> Option C
  4. Quick Check:

    do-while runs once first = A [OK]
Hint: Remember: do-while runs code first, then checks condition [OK]
Common Mistakes:
  • Thinking do-while checks condition first
  • Believing semicolon after while is optional
  • Confusing do-while with while loop behavior
2. Which of the following is the correct syntax for a do-while loop in C?
easy
A. do { /* code */ } while (condition);
B. do ( /* code */ ) while condition;
C. do { /* code */ } while condition
D. do while (condition) { /* code */ };

Solution

  1. Step 1: Recall the correct syntax structure

    The do-while loop requires braces around the code block and a semicolon after the while condition in parentheses.
  2. Step 2: Compare options to syntax

    do { /* code */ } while (condition); matches the correct syntax: do { /* code */ } while (condition); with braces and semicolon.
  3. Final Answer:

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

    Semicolon after while(condition) = B [OK]
Hint: Look for braces and semicolon after while(condition) [OK]
Common Mistakes:
  • Omitting semicolon after while condition
  • Using parentheses instead of braces for code block
  • Placing while before do
3. What will be the output of the following C code?
int i = 3;
do {
    printf("%d ", i);
    i--;
} while (i > 0);
medium
A. 1 2 3
B. 2 1 0
C. 3 2 1 0
D. 3 2 1

Solution

  1. Step 1: Trace the loop iterations

    Initially, i = 3. The loop prints i, then decrements i by 1. It repeats while i > 0.
  2. Step 2: List printed values

    First iteration: prints 3, i becomes 2
    Second iteration: prints 2, i becomes 1
    Third iteration: prints 1, i becomes 0
    Loop stops because i is not > 0.
  3. Final Answer:

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

    Prints 3 down to 1 = A [OK]
Hint: Count printed values before condition fails [OK]
Common Mistakes:
  • Including 0 in output
  • Starting from 2 instead of 3
  • Printing in ascending order
4. Identify the error in this do-while loop code snippet:
int x = 5;
do {
    printf("%d", x);
    x--;
} while x > 0;
medium
A. The loop condition should be inside braces.
B. Missing parentheses around the while condition.
C. Variable x is not initialized.
D. Missing semicolon after the do block.

Solution

  1. Step 1: Check syntax of the while condition

    The while condition must be enclosed in parentheses, like while (x > 0);.
  2. Step 2: Identify the error in the code

    The code has while x > 0; missing parentheses, causing a syntax error.
  3. Final Answer:

    Missing parentheses around the while condition. -> Option B
  4. Quick Check:

    while(condition) needs parentheses = D [OK]
Hint: Always put condition in parentheses after while [OK]
Common Mistakes:
  • Omitting parentheses in while condition
  • Forgetting semicolon after while statement
  • Misplacing braces around condition
5. You want to write a do-while loop that asks the user to enter a positive number and repeats until the user enters a positive number. Which code snippet correctly implements this?
hard
A. int num; do { printf("Enter a positive number: "); scanf("%d", &num); } while (num <= 0);
B. int num = 0; do { scanf("%d", &num); printf("Enter a positive number: "); } while (num > 0);
C. int num; do { scanf("%d", &num); } while (num < 0);
D. int num; do { printf("Enter a positive number: "); scanf("%d", &num); } while (num < 0);

Solution

  1. Step 1: Understand the requirement

    The loop must ask for input at least once and repeat while the number is not positive (<= 0).
  2. Step 2: Analyze each option

    int num; do { printf("Enter a positive number: "); scanf("%d", &num); } while (num <= 0); prompts before input and repeats while number is <= 0, which matches the requirement.
    int num = 0; do { scanf("%d", &num); printf("Enter a positive number: "); } while (num > 0); prints prompt after input and repeats while number > 0, which is incorrect.
    int num; do { scanf("%d", &num); } while (num < 0); repeats while number < 0, missing zero case.
    int num; do { printf("Enter a positive number: "); scanf("%d", &num); } while (num < 0); repeats while number < 0, missing zero case.
  3. Final Answer:

    int num; do { printf("Enter a positive number: "); scanf("%d", &num); } while (num <= 0); -> Option A
  4. Quick Check:

    Repeat while number not positive = C [OK]
Hint: Repeat while input ≤ 0, prompt before input [OK]
Common Mistakes:
  • Checking wrong condition (e.g., num < 0 instead of <= 0)
  • Prompting after input instead of before
  • Not handling zero as invalid input
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