Do–while loop in Java - Time & Space Complexity
We want to understand how the time it takes to run a do-while loop changes as the input size grows.
How many times does the loop run when the input gets bigger?
Analyze the time complexity of the following code snippet.
int i = 0;
do {
System.out.println(i);
i++;
} while (i < n);
This code prints numbers from 0 up to n-1 using a do-while loop.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The do-while loop runs the print statement repeatedly.
- How many times: It runs exactly n times, once for each number from 0 to n-1.
As n grows, the number of times the loop runs grows the same way.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 |
| 100 | 100 |
| 1000 | 1000 |
Pattern observation: The operations increase directly with n, so doubling n doubles the work.
Time Complexity: O(n)
This means the time to run the loop grows in a straight line with the size of n.
[X] Wrong: "The do-while loop always runs only once, so time is constant."
[OK] Correct: The loop runs at least once, but if n is bigger, it runs many times, so time grows with n.
Understanding how loops like do-while grow with input size helps you explain code efficiency clearly and confidently.
"What if we changed the loop to stop when i <= n instead of i < n? How would the time complexity change?"
Practice
What is the main difference between a do-while loop and a while loop in Java?
Solution
Step 1: Understand
Ado-whileloop behaviordo-whileloop runs the code block first, then checks the condition to decide if it should repeat.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:
Ado-whileloop executes 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
- Believing do-while skips condition check
- Confusing order of execution and condition check
Which of the following is the correct syntax for a do-while loop in Java?
?
Solution
Step 1: Recall correct
The correct syntax starts withdo-whilesyntaxdo, then the code block in braces, followed bywhile (condition);with a semicolon.Step 2: Identify the correct option
do { // code } while (condition); matches the correct syntax exactly. Others have wrong order, missing semicolon, or wrong keywords.Final Answer:
do { // code } while (condition); -> Option AQuick Check:
Syntax: do { } while (condition); [OK]
- Missing semicolon after while condition
- Using 'until' instead of 'while'
- Placing condition before code block
What will be the output of the following Java code?
int count = 1;
do {
System.out.print(count + " ");
count++;
} while (count <= 3);Solution
Step 1: Trace the loop iterations
Initially, count = 1. The loop prints count, then increments it. It repeats while count <= 3.Step 2: List printed values
Iterations print: 1 (count=1), 2 (count=2), 3 (count=3). When count becomes 4, condition fails and loop stops.Final Answer:
1 2 3 -> Option CQuick Check:
Prints 1 to 3 inclusive [OK]
- Thinking loop prints 4 because of increment
- Confusing pre-increment and post-increment
- Assuming no output if condition false initially
Identify the error in this do-while loop code snippet:
int i = 0;
do {
System.out.println(i);
i++
} while (i < 5);Solution
Step 1: Check syntax inside the loop
The statementi++is missing a semicolon at the end, which causes a syntax error.Step 2: Verify other parts
The condition is correctly placed after the loop with a semicolon. Variable declaration outside is valid. Loop type is correct.Final Answer:
Missing semicolon afteri++-> Option DQuick Check:
Every statement needs a semicolon [OK]
- Forgetting semicolon after increment
- Misplacing condition inside braces
- Thinking variable must be declared inside loop
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?
Scanner sc = new Scanner(System.in);
int num;
do {
System.out.print("Enter a positive number: ");
num = sc.nextInt();
} while (???);Solution
Step 1: Understand the loop goal
The loop should repeat while the number is not positive, meaning while it is zero or negative.Step 2: Choose the correct condition
The conditionnum <= 0ensures the loop repeats until the user enters a positive number.Final Answer:
num <= 0 -> Option BQuick Check:
Repeat while number is not positive [OK]
- Using condition that stops too early
- Checking for positive instead of non-positive
- Confusing < and <= operators
Ready to prove it?
Pass the test and this pattern moves unknown
