Skip to main content

How to Solve "SyntaxError: 'break' outside loop" in Python

The SyntaxError: 'break' outside loop error in Python occurs when you use the break statement outside of a for or while loop. The break statement is specifically designed to exit loops prematurely.

This guide explains the correct usage of break and provides alternatives for exiting functions or the entire program.

Understanding break

The break statement is a control flow statement used exclusively within loops (for and while). Its purpose is to immediately terminate the innermost enclosing loop, skipping any remaining iterations. You can not use break outside of a loop.

Incorrect Example (Causes Error):

if len('hi') == 2:
break # ⛔️ SyntaxError: 'break' outside loop
  • The break statement can not be used outside the loop.

Correct Use of break (within Loops)

Here's how to use break correctly within a for loop:

for i in range(5):
if i == 3:
break # Exit the loop when i is 3
print(i)

print('exited for loop')

Output:

0
1
2
exited for loop
  • The break statement inside the if block, exists the for loop.
  • The loop terminates when i is equal to 3.

And within a while loop:

i = 0
while i < 5:
print(i)
i += 1
if i == 3:
break # Exit the loop when i is 3
print('exited while loop')

Output:

0
1
2
exited while loop

Exiting a Function with return

If you're inside a function and want to exit based on a condition, use the return statement, not break:

def example():
if len('hi') == 2:
return 100 # Exits the function and returns 100
return 0 # This line is reached only if the condition is false


result = example()
print(result) # Output: 100
  • return immediately exits the function, optionally returning a value. It's the correct way to terminate a function's execution based on a condition.

Exiting the Entire Program with sys.exit()

To terminate the entire Python script immediately, use sys.exit():

import sys

print('before') # This runs
sys.exit() # Exit the program
print('after') # This line will NEVER execute
  • sys.exit() raises a SystemExit exception. If uncaught, this terminates the Python interpreter.
  • This should be used when the error encountered can not be recovered from and the program should terminate.

Raising Exceptions

You can also use an exception and the raise keyword if you want to interrupt a code block's execution.

an_int = 10

if an_int > 5:
raise Exception('example error message')
else:
print('bar')
# Output: Exception: example error message

Common Mistake: Incorrect Indentation

Incorrect indentation can also cause the SyntaxError. Make sure your break statement is inside the loop's code block:

for i in range(5):
if i == 3:
print(i)

break # ⛔️ error - break is outside loop.
note

The break statement must be indented so it is within the body of the loop.

Conclusion

This guide explained the cause of the error and the correct use of the break statement. The SyntaxError: 'break' outside loop error occurs because the break statement can only be used inside a for or while loop. Use return to exit a function, and sys.exit() to terminate the entire script. Correct indentation is crucial to avoid syntax errors.

By understanding the proper use of these control flow statements, you can write more effective and error-free Python code.