Bird
Raised Fist0
C++programming~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| No↓
Repeat
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 {
  cout << i << " ";
  i++;
} while (i <= 3);
Prints numbers 1 to 3 using a do-while loop that runs the body before checking the condition.
Execution Table
Stepi valueCondition (i <= 3)ActionOutput
11truePrint 1, i = i + 1 (i=2)1
22truePrint 2, i = i + 1 (i=3)2
33truePrint 3, i = i + 1 (i=4)3
44falseExit loop
💡 At step 4, i is 4, condition 4 <= 3 is false, so 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 initially?
Because in a do-while loop, the body runs first before the condition is checked, 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 runs, as seen after each action in the execution_table rows.
What happens when the condition becomes false?
The loop stops immediately after the condition check fails, as shown in step 4 where the condition is false and the loop exits.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of i at step 3?
A2
B3
C4
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 3
CStep 4
DStep 1
💡 Hint
Look at the 'Condition' column in the execution_table to find when it is false.
If the initial value of i was 5, how many times would the loop body run?
A1 time
B5 times
C0 times
DInfinite times
💡 Hint
Remember do-while runs the body once before checking condition; see key_moments about initial run.
Concept Snapshot
do {
  // code to run
} while (condition);

- Runs loop body first, then checks condition.
- Repeats if condition true, stops if false.
- Executes at least once even if condition false initially.
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. For example, starting with i=1, the loop prints i and increases it by 1, then checks if i is less or equal to 3. It repeats until i becomes 4, then stops. This is different from a while loop that checks condition before running the body. The execution table shows each step with i's value, condition result, action taken, and output. The variable tracker shows how i changes after each iteration. Key moments clarify why the body runs first and when the loop stops. The quiz tests understanding of i's value at steps, when the loop ends, and behavior with different initial values.

Practice

(1/5)
1.

What is the main difference between a do-while loop and a while loop in C++?

easy
A. do-while loop runs the code block at least once before checking the condition.
B. while loop always runs the code block at least once.
C. do-while loop checks the condition before running the code block.
D. There is no difference; both behave the same.

Solution

  1. Step 1: Understand do-while loop behavior

    A do-while loop executes the code block first, then checks the condition to decide if it repeats.
  2. Step 2: Compare with while loop

    A while loop checks the condition first before running the code block, so it may not run at all if the condition is false initially.
  3. Final Answer:

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

    do-while runs once before condition check [OK]
Hint: Remember: do-while runs code first, then checks condition [OK]
Common Mistakes:
  • Thinking while loop always runs code once
  • Confusing order of condition check
  • Assuming do-while and while behave the same
2.

Which of the following is the correct syntax for a do-while loop in C++?

?
easy
A. while (condition) do { /* code */ };
B. do ( /* code */ ) while condition;
C. do { /* code */ } while (condition);
D. do { /* code */ } until (condition);

Solution

  1. Step 1: Recall correct do-while syntax

    The correct syntax uses do { ... } while (condition); with braces and a semicolon after the while condition.
  2. Step 2: Identify syntax errors in other options

    do ( /* code */ ) while condition; misses braces and semicolon; C uses incorrect keyword 'until'; A reverses order incorrectly.
  3. Final Answer:

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

    Syntax ends with semicolon after while(condition) [OK]
Hint: Look for braces and semicolon after while(condition) [OK]
Common Mistakes:
  • Omitting semicolon after while(condition)
  • Using 'until' instead of 'while'
  • Incorrect order of do and while keywords
3.

What will be the output of the following C++ code?

int i = 3;
do {
    std::cout << i << " ";
    i--;
} while (i > 0);
medium
A. 3 2 1
B. 3 2 1 0
C. 2 1 0
D. 1 2 3

Solution

  1. Step 1: Trace the loop iterations

    Initially, i=3. The loop prints 3, then decrements i to 2. Condition i>0 is true, so repeats printing 2, then 1.
  2. Step 2: Check when loop stops

    After printing 1, i becomes 0. Condition i>0 is false, loop stops. So output is "3 2 1 "
  3. Final Answer:

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

    Loop runs while i>0, prints 3,2,1 [OK]
Hint: Count printed values before condition fails [OK]
Common Mistakes:
  • Including 0 in output
  • Starting count from 2 instead of 3
  • Printing in wrong order
4.

Identify the error in this do-while loop code snippet:

int x = 5;
do {
    std::cout << x << " ";
    x++;
} while x < 10;
medium
A. The loop should end with a comma, not a semicolon.
B. The variable x should be decremented, not incremented.
C. The do keyword is misspelled.
D. Missing parentheses around the condition in while statement.

Solution

  1. Step 1: Check syntax of while condition

    The condition after while must be enclosed in parentheses: while (x < 10);.
  2. Step 2: Verify other parts

    Incrementing x is valid; do is spelled correctly; loop ends with semicolon, which is correct.
  3. Final Answer:

    Missing parentheses around the condition in while statement. -> Option D
  4. Quick Check:

    while condition needs parentheses [OK]
Hint: Always put condition in parentheses after while [OK]
Common Mistakes:
  • Forgetting parentheses in while condition
  • Confusing semicolon with comma at loop end
  • Thinking increment is always wrong
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 number greater than zero. Which code snippet correctly implements this?

?
hard
A. int num; while (num <= 0) { std::cout << "Enter positive number: "; std::cin >> num; }
B. int num; do { std::cout << "Enter positive number: "; std::cin >> num; } while (num <= 0);
C. int num = 0; do { std::cout << "Enter positive number: "; std::cin >> num; } while (num > 0);
D. int num; do { std::cout << "Enter positive number: "; std::cin >> num; } while (num < 0);

Solution

  1. Step 1: Understand the condition to repeat

    The loop should continue while the number is less than or equal to zero, so condition is num <= 0.
  2. Step 2: Check each option's condition

    int num; do { std::cout << "Enter positive number: "; std::cin >> num; } while (num <= 0); uses do-while (num <= 0); which repeats until user enters positive number. int num = 0; do { std::cout << "Enter positive number: "; std::cin >> num; } while (num > 0); repeats while number is positive (wrong). int num; while (num <= 0) { std::cout << "Enter positive number: "; std::cin >> num; } uses while loop, not do-while. int num; do { std::cout << "Enter positive number: "; std::cin >> num; } while (num < 0); repeats while number is less than zero, so zero input stops loop incorrectly.
  3. Final Answer:

    int num; do { std::cout << "Enter positive number: "; std::cin >> num; } while (num <= 0); -> Option B
  4. Quick Check:

    Repeat while input ≤ 0 to ensure positive input [OK]
Hint: Repeat while input is not positive (≤ 0) [OK]
Common Mistakes:
  • Using wrong condition sign (> 0 instead of ≤ 0)
  • Using while loop instead of do-while
  • Stopping loop too early on zero 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