Break and continue behavior in Swift - Time & Space Complexity
When we use break or continue in loops, it changes how many times the loop runs. This affects how long the code takes to finish.
We want to see how these commands change the work done as the input grows.
Analyze the time complexity of the following code snippet.
var sum = 0
for i in 1...n {
if i == 5 {
break
}
if i % 2 == 0 {
continue
}
sum += i
}
This code loops from 1 to n, but stops early if i reaches 5, and skips adding even numbers.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The for-loop running from 1 to n.
- How many times: The loop stops early at i = 5 due to break, so it runs at most 5 times.
Because the loop stops at 5, the number of steps does not grow with n after a point.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 5 |
| 100 | 5 |
| 1000 | 5 |
Pattern observation: The work stays the same even if n gets bigger because of the break.
Time Complexity: O(1)
This means the loop runs a fixed number of times, no matter how big the input is.
[X] Wrong: "The loop always runs n times, so time is O(n)."
[OK] Correct: Because the break stops the loop early, it only runs a few times, not all n times.
Understanding how break and continue affect loops helps you explain code efficiency clearly and shows you can think about real code behavior.
"What if we removed the break statement? How would the time complexity change?"
Practice
break statement do inside a Swift loop?Solution
Step 1: Understand the role of
Thebreakin loopsbreakstatement immediately stops the loop and exits it, no matter where it is in the loop.Step 2: Compare with other options
continueskips to the next iteration, butbreakstops the loop entirely. Restarting or pausing the loop is not the behavior ofbreak.Final Answer:
Stops the entire loop immediately and exits it. -> Option DQuick Check:
breakstops loop [OK]
- Confusing break with continue
- Thinking break restarts the loop
- Assuming break pauses the loop
for loop?Solution
Step 1: Identify the keyword to skip iteration
In Swift,continueis used to skip the rest of the current loop iteration and move to the next one.Step 2: Verify other options
breakstops the loop,skipandstopare not valid Swift keywords for loops.Final Answer:
continue -> Option BQuick Check:
Skip iteration = continue [OK]
- Using break instead of continue
- Using non-existent keywords like skip or stop
- Confusing continue with break
for i in 1...5 {
if i == 3 {
break
}
print(i)
}Solution
Step 1: Analyze the loop and break condition
The loop runs from 1 to 5. Wheniequals 3,breakstops the loop immediately.Step 2: Determine printed values before break
Values 1 and 2 are printed before reaching 3. At 3, loop stops, so 3, 4, 5 are not printed.Final Answer:
1 2 -> Option AQuick Check:
Break stops at 3, prints before it [OK]
- Assuming break skips only current iteration
- Thinking all numbers print
- Confusing break with continue
for i in 1...5 {
if i == 3 {
continue
}
if i == 6 {
break
}
print(i)
}Solution
Step 1: Check the loop range and conditions
The loop runs from 1 to 5, soiwill never be 6.Step 2: Analyze the break condition
Sincei == 6never occurs, thebreakstatement will never execute, so the loop runs fully except skipping 3 due to continue.Final Answer:
The loop will never break because i never reaches 6. -> Option CQuick Check:
Break condition unreachable [OK]
- Thinking continue is invalid in for loops
- Assuming break runs before continue always
- Not checking loop range carefully
break and continue in Swift?Solution
Step 1: Understand requirements
Skip printing 5 (usecontinue) and stop printing after 8 (usebreakwhen > 8).Step 2: Check each option
for i in 1...10 { if i == 5 { continue } if i > 8 { break } print(i) } usescontinueto skip 5 andbreakto stop after 8, matching requirements exactly.Final Answer:
for i in 1...10 { if i == 5 { continue } if i > 8 { break } print(i) } -> Option AQuick Check:
Continue skips 5, break stops loop after 8 [OK]
- Using break to skip 5 instead of continue
- Using continue to stop loop after 8
- Mixing order of break and continue incorrectly
Ready to prove it?
Pass the test and this pattern moves unknown
