Loop initialization, condition, update in Java - Time & Space Complexity
We want to understand how the time a loop takes changes as we change its size.
How do the parts of a loop affect how long it runs?
Analyze the time complexity of the following code snippet.
for (int i = 0; i < n; i++) {
System.out.println(i);
}
This loop prints numbers from 0 up to n-1, running once for each number.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The loop runs the print statement.
- How many times: 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 print operations |
| 100 | 100 print operations |
| 1000 | 1000 print operations |
Pattern observation: The work grows directly with n; double n means double the work.
Time Complexity: O(n)
This means the time to run grows in a straight line with the size of n.
[X] Wrong: "The loop runs faster because the update step is simple."
[OK] Correct: The update step is very fast, but the loop still runs n times, so the total time depends on how many times it repeats, not just the update.
Understanding how loops grow with input size helps you explain your code clearly and shows you know how to think about efficiency.
"What if we changed the loop to count down from n to 0? How would the time complexity change?"
Practice
for loop in Java sets the starting value of the loop variable?Solution
Step 1: Understand the parts of a for loop
A for loop has three parts: initialization, condition, and update.Step 2: Identify the starting value part
The initialization part sets the starting value of the loop variable before the loop runs.Final Answer:
Initialization -> Option AQuick Check:
Starting value = Initialization [OK]
- Confusing condition with initialization
- Thinking update sets the start value
- Mixing loop body with initialization
for loop in Java that counts from 0 to 4?Solution
Step 1: Check initialization and condition
for(int i = 0; i <= 4; i++) {} starts at 0 and runs while i is less than or equal to 4, which covers 0 to 4.Step 2: Check update direction
for(int i = 0; i <= 4; i++) {} increments i by 1 each time, moving forward correctly.Final Answer:
for(int i = 0; i <= 4; i++) {} -> Option BQuick Check:
0 to 4 inclusive = for(int i = 0; i <= 4; i++) {} [OK]
- Using i < 4 excludes 4
- Starting at 1 misses 0
- Decrementing i causes infinite loop
for(int i = 1; i < 5; i += 2) {
System.out.print(i + " ");
}Solution
Step 1: Trace loop values
i starts at 1, prints 1, then i increases by 2 to 3, prints 3, then i increases by 2 to 5.Step 2: Check loop condition
Loop runs while i < 5. When i is 5, condition fails, so loop stops.Final Answer:
1 3 -> Option DQuick Check:
Prints 1 and 3 only [OK]
- Assuming loop runs when i equals 5
- Forgetting i increments by 2
- Printing values after loop ends
for(int i = 0; i > 5; i++) {
System.out.println(i);
}Solution
Step 1: Analyze the loop condition
The condition is i > 5, but i starts at 0, so 0 > 5 is false immediately.Step 2: Understand loop execution
Since condition is false at start, loop body never runs.Final Answer:
Condition causes loop to never run -> Option AQuick Check:
False condition stops loop immediately [OK]
- Thinking loop runs at least once
- Confusing > with < in condition
- Assuming update fixes condition
for loop in Java. Which loop correctly does this?Solution
Step 1: Check initialization and update for even numbers
for(int i = 2; i <= 20; i += 2) { System.out.print(i + " "); } starts at 2 and increments by 2, printing even numbers directly up to 20.Step 2: Verify condition includes 20
Condition i <= 20 ensures 20 is included in output.Final Answer:
for(int i = 2; i <= 20; i += 2) { System.out.print(i + " "); } -> Option CQuick Check:
Start at 2, step 2, up to 20 [OK]
- Starting at 0 prints unwanted 0
- Using < 20 excludes 20
- Forgetting to increment by 2
Ready to prove it?
Pass the test and this pattern moves unknown
