Bird
Raised Fist0
C++programming~20 mins

Do–while loop in C++ - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Do–while Loop Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of a simple do–while loop
What is the output of this C++ code using a do–while loop?
C++
int i = 1;
do {
    std::cout << i << " ";
    i++;
} while (i <= 3);
A1 2
B1 2 3
C2 3
DNo output
Attempts:
2 left
💡 Hint
Remember, do–while executes the loop body before checking the condition.
❓ Predict Output
intermediate
2:00remaining
Do–while loop with condition false initially
What will this C++ program print?
C++
int x = 5;
do {
    std::cout << x << " ";
    x++;
} while (x < 5);
A5
BNo output
C5 6 7 ... (infinite loop)
D6
Attempts:
2 left
💡 Hint
The loop runs once before checking the condition.
🔧 Debug
advanced
2:00remaining
Identify the error in this do–while loop
What error will this code cause?
C++
int count = 0;
do {
    std::cout << count << " ";
    count++;
} while (count < 3);
ASyntaxError: missing semicolon
BRuntime error: infinite loop
CNo error, prints 0 1 2
DCompilation error: undeclared variable
Attempts:
2 left
💡 Hint
Check punctuation carefully in C++.
❓ Predict Output
advanced
2:00remaining
Counting down with do–while loop
What does this code print?
C++
int n = 3;
do {
    std::cout << n << " ";
    n--;
} while (n > 0);
A3 2 1 0
B1 2 3
C3 2 1
DNo output
Attempts:
2 left
💡 Hint
The loop runs while n is greater than zero.
🧠 Conceptual
expert
2:00remaining
Behavior difference between while and do–while loops
Which statement best describes the difference between a while loop and a do–while loop in C++?
AA while loop always executes its body at least once, while a do–while loop may not execute at all.
BNeither loop executes if the condition is false initially.
CBoth loops always execute their bodies at least once.
DA do–while loop always executes its body at least once, while a while loop may not execute at all.
Attempts:
2 left
💡 Hint
Think about when the condition is checked in each loop.

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