A do-while loop lets you run a block of code at least once, then repeat it while a condition is true.
Do–while loop in C++
do { // code to run } while (condition);
The code inside do { } runs first, then the condition is checked.
If the condition is true, the loop repeats. If false, it stops.
int i = 1; do { std::cout << i << " "; i++; } while (i <= 3);
char answer; do { std::cout << "Continue? (y/n): "; std::cin >> answer; } while (answer == 'y');
This program prints "Count is: " followed by numbers 1 to 5 using a do-while loop.
#include <iostream> int main() { int count = 1; do { std::cout << "Count is: " << count << "\n"; count++; } while (count <= 5); return 0; }
Remember the semicolon ; after the while(condition) line is required.
Unlike a while loop, a do-while loop always runs the code block at least once.
A do-while loop runs code first, then checks the condition.
It repeats the code while the condition is true.
Use it when you want the code to run at least once before checking.
Practice
What is the main difference between a do-while loop and a while loop in C++?
Solution
Step 1: Understand
Ado-whileloop behaviordo-whileloop executes the code block first, then checks the condition to decide if it repeats.Step 2: Compare with
Awhileloopwhileloop checks the condition first before running the code block, so it may not run at all if the condition is false initially.Final Answer:
do-whileloop runs the code block at least once before checking the condition. -> Option AQuick Check:
do-whileruns once before condition check [OK]
- Thinking while loop always runs code once
- Confusing order of condition check
- Assuming do-while and while behave the same
Which of the following is the correct syntax for a do-while loop in C++?
?
Solution
Step 1: Recall correct
The correct syntax usesdo-whilesyntaxdo { ... } while (condition);with braces and a semicolon after the while condition.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.Final Answer:
do { /* code */ } while (condition); -> Option CQuick Check:
Syntax ends with semicolon after while(condition) [OK]
- Omitting semicolon after while(condition)
- Using 'until' instead of 'while'
- Incorrect order of do and while keywords
What will be the output of the following C++ code?
int i = 3;
do {
std::cout << i << " ";
i--;
} while (i > 0);Solution
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.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 "Final Answer:
3 2 1 -> Option AQuick Check:
Loop runs while i>0, prints 3,2,1 [OK]
- Including 0 in output
- Starting count from 2 instead of 3
- Printing in wrong order
Identify the error in this do-while loop code snippet:
int x = 5;
do {
std::cout << x << " ";
x++;
} while x < 10;Solution
Step 1: Check syntax of while condition
The condition afterwhilemust be enclosed in parentheses:while (x < 10);.Step 2: Verify other parts
Incrementingxis valid;dois spelled correctly; loop ends with semicolon, which is correct.Final Answer:
Missing parentheses around the condition in while statement. -> Option DQuick Check:
while condition needs parentheses [OK]
- Forgetting parentheses in while condition
- Confusing semicolon with comma at loop end
- Thinking increment is always wrong
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?
?
Solution
Step 1: Understand the condition to repeat
The loop should continue while the number is less than or equal to zero, so condition isnum <= 0.Step 2: Check each option's condition
int num; do { std::cout << "Enter positive number: "; std::cin >> num; } while (num <= 0); usesdo-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.Final Answer:
int num; do { std::cout << "Enter positive number: "; std::cin >> num; } while (num <= 0); -> Option BQuick Check:
Repeat while input ≤ 0 to ensure positive input [OK]
- Using wrong condition sign (> 0 instead of ≤ 0)
- Using while loop instead of do-while
- Stopping loop too early on zero input
Ready to prove it?
Pass the test and this pattern moves unknown
