Break statement in Go - Time & Space Complexity
We want to see how using a break statement affects how long a program runs.
Does stopping a loop early change how the work grows as input gets bigger?
Analyze the time complexity of the following code snippet.
for i := 0; i < n; i++ {
if i == 5 {
break
}
// some constant time work
}
This code loops from 0 up to n, but stops early when i reaches 5.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The for loop that runs up to n times.
- How many times: Actually runs only 6 times because of the break.
Even if n grows bigger, the loop stops early at 6 steps, so work stays the same.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 6 |
| 100 | 6 |
| 1000 | 6 |
Pattern observation: The work does not grow with input size because the break stops the loop early.
Time Complexity: O(1)
This means the program runs in constant time, doing the same amount of work no matter how big n is.
[X] Wrong: "The loop always runs n times, so break does not affect time complexity."
[OK] Correct: Because the break stops the loop early, the loop does not run all n times, so the work stays constant.
Understanding how break changes loop behavior helps you explain how code can be more efficient by stopping early.
"What if the break condition depends on input size n, like breaking when i == n/2? How would the time complexity change?"
Practice
break statement do inside a loop in Go?Solution
Step 1: Understand the role of break in loops
Thebreakstatement is used to exit a loop immediately, stopping any further iterations.Step 2: Compare with other loop controls
Unlikecontinuewhich skips to the next iteration,breakstops the loop entirely and moves on.Final Answer:
It immediately stops the loop and continues after it. -> Option CQuick Check:
Break stops loop = It immediately stops the loop and continues after it. [OK]
- Confusing break with continue
- Thinking break pauses the loop
- Assuming break restarts the loop
break inside a for loop in Go?Solution
Step 1: Identify the correct keyword for stopping a loop
In Go,breakis the keyword used to exit a loop early.Step 2: Check syntax correctness
for i := 0; i < 5; i++ { if i == 3 { break } } usesbreakcorrectly inside anifstatement within theforloop.Final Answer:
for i := 0; i < 5; i++ { if i == 3 { break } } -> Option DQuick Check:
Correct break syntax = for i := 0; i < 5; i++ { if i == 3 { break } } [OK]
- Using 'stop' or 'exit' instead of 'break'
- Confusing 'continue' with 'break'
- Missing curly braces around break
for i := 1; i <= 5; i++ {
if i == 3 {
break
}
fmt.Print(i, " ")
}Solution
Step 1: Trace the loop iterations
The loop starts at i=1 and prints i. When i=3, thebreakstops the loop immediately.Step 2: Determine printed values before break
Values printed before break are 1 and 2, then loop stops before printing 3.Final Answer:
1 2 -> Option BQuick Check:
Break at 3 stops loop = 1 2 [OK]
- Including 3 in output
- Printing all numbers ignoring break
- Confusing break with continue
break:for i := 0; i < 5; i++ {
if i == 2 {
break 2
}
fmt.Println(i)
}Solution
Step 1: Understand break usage in Go
Go'sbreakdoes not accept a number to break multiple loops; it only breaks the closest loop.Step 2: Identify invalid syntax
Usingbreak 2causes a syntax error because Go does not support labeled breaks with numbers.Final Answer:
Using break with a number is invalid in Go. -> Option AQuick Check:
Break with number invalid = Using break with a number is invalid in Go. [OK]
- Trying to break multiple loops with a number
- Confusing Go with other languages like JavaScript
- Ignoring syntax errors from break usage
break to exit only the inner loop in Go?for i := 1; i <= 3; i++ {
for j := 1; j <= 3; j++ {
if j == 2 {
break
}
fmt.Printf("%d,%d ", i, j)
}
}What will be the output?
Solution
Step 1: Understand break in nested loops
Thebreakinside the inner loop stops only that inner loop whenj == 2.Step 2: Trace output for each iteration
For each i, inner loop prints when j=1, then breaks at j=2, so output is pairs with j=1 only.Final Answer:
1,1 2,1 3,1 -> Option AQuick Check:
Break stops inner loop only = 1,1 2,1 3,1 [OK]
- Thinking break exits both loops
- Expecting all j values printed
- Confusing break with continue
Ready to prove it?
Pass the test and this pattern moves unknown
