Skip to content

A Comprehensive Guide to Loop Control Statements 'break' and 'continue' in Python

Updated: at 04:34 AM

Python provides two important loop control statements - break and continue - which allow you to control the flow of loops more precisely. Mastering these statements is crucial for writing efficient and robust Python code. This comprehensive guide will explain what break and continue do, when to use them, and provide examples demonstrating their usage in loops like for and while.

Table of Contents

Open Table of Contents

Introduction

Loops allow you to repeatedly execute a block of code in Python. This enables iterating over sequences like lists, tuples, dictionaries, sets etc. to perform the same operation on each element.

However, sometimes you may want to alter the standard flow of a loop based on a condition. This is where loop control statements like break and continue come in.

The break statement allows you to exit a loop instantly, without executing the remaining code in it.

The continue statement lets you skip the current iteration and move directly to the next one.

These statements provide finer control over loops and make writing conditional loops easier. Understanding how to use them correctly will help you write cleaner Python code.

In this guide, we will cover:

So let’s get started!

What break and continue Do

The break and continue statements affect the control flow of loops. Let’s quickly recap what they do:

break

The break statement terminates the current loop and resumes execution after the loop. It abruptly stops the loop iteration.

For example, if a for loop is iterating over a list, and break is encountered, it immediately exits the for loop and continues executing the code after the loop.

continue

The continue statement skips the current iteration and jumps to the next one. It stops executing the code inside the loop for the current iteration only.

For a for loop iterating over a list, continue will skip the current element and move on to the next one instantly. The remaining code inside the loop is skipped.

So in summary:

Next, let’s look at some examples of using them in for and while loops.

Examples of break and continue in Loops

Here are some examples demonstrating how to use break and continue inside for and while loops in Python.

break in a for loop

This terminates the loop when x becomes 3:

for x in [1, 2, 3, 4, 5]:
    if x == 3:
        print("Breaking!")
        break
    print(x)

print("Loop ended")

Output:

1
2
Breaking!
Loop ended

As you can see, it printed only till 2 and then broke out of the loop.

continue in a for loop

This skips printing 3:

for x in [1, 2, 3, 4, 5]:
    if x == 3:
        print("Continuing!")
        continue
    print(x)

print("Loop ended")

Output:

1
2
Continuing!
4
5
Loop ended

break in a while loop

This breaks out of the loop when x exceeds 5:

x = 1
while x <= 10:
    if x > 5:
        print("Breaking!")
        break
    print(x)
    x += 1

print("Loop ended")

Output:

1
2
3
4
5
Breaking!
Loop ended

continue in a while loop

This will skip printing 6:

x = 1
while x <= 10:
    if x == 6:
        print("Continuing!")
        continue
    print(x)
    x += 1

print("Loop ended")

Output:

1
2
3
4
5
Continuing!
7
8
9
10
Loop ended

These examples demonstrate how break and continue can provide finer control over loops in Python.

When to Use break vs continue

Now let’s discuss when to use break versus continue in loops:

Use break when:

For example, if you are iterating over a list to search for a specific item, you can break once you find it to avoid going through the remaining elements.

Use continue when:

For instance, if you want to print only even numbers from a list, you can use continue to skip odd numbers and move to the next iteration.

So in summary:

Common Errors

There are some common errors to watch out for when using break and continue:

Using continue improperly

continue only skips the current iteration. So incorrectly using it to terminate a loop is a common mistake.

For example:

for i in [1,2,3]:
    if i == 2:
        continue
    print(i)

print("Loop ended")

This will print:

1
3
Loop ended

It skips 2 but does not break out of the loop entirely. To exit early, break should be used instead of continue.

Forgetting the loop’s incrementation

When using continue, it is easy to forget incrementing the loop counter because you skip the remaining code.

For example:

for i in range(5):
    if i % 2 != 0:
        continue
    print(i)

This will print only 0 forever, since the loop counter i is not incremented.

To fix it, increment i before using continue:

for i in range(5):
    if i % 2 != 0:
        i += 1
        continue
    print(i)

Now it will print 0, 2, 4 as expected.

Unintentional infinite loops

You can accidentally create infinite loops if continue is called unconditionally inside the loop.

For example:

while True:
  continue

This will loop forever. To avoid it, have a termination condition before using continue.

Practical Applications

Loop control statements like break and continue have many practical applications in real world Python programming:

Early exiting from loops

You can use break to exit loops when a termination condition is met, rather than waiting for the loop to complete all iterations.

For example, when searching for an item in a list, you can break early after finding the match:

items = [1, 5, 7, 10, 15]
target = 10

for item in items:
    if item == target:
        print("Found target at index", items.index(item))
        break

This breaks instantly after finding 10, avoiding extra iterations.

Skipping invalid data

When processing data, you can use continue to skip invalid or corrupted data entries instead of breaking:

data_set = [100, 105, 215, "error", 311, 228]

for data in data_set:
    if not isinstance(data, int):
        continue
    print(data)

This skips the string entry and continues processing other valid integer entries in data_set.

Implementing conditional loops

Using break and continue you can add logic and conditions inside loops to control their execution.

For example, printing only even numbers:

for num in range(1, 11):
    if num % 2 != 0:
        continue

    print(num)

Or breaking out of a game loop when health reaches zero:

health = 10
while health > 0:
    health -= 1
    if health == 0:
        break

Optimizing performance

By breaking early or skipping unnecessary iterations, break and continue can speed up your code and optimize performance.

Best Practices

When using break and continue in your code, follow these best practices:

Following these best practices will help you write clean, readable and bug-free loops using break and continue.

Conclusion

The break and continue statements provide powerful control over Python loops. Using them properly allows you to build complex loops with conditions and early termination logic.

Key Takeaways:

Learning to leverage break and continue effectively will level up your Python loop programming skills. They help write concise and efficient loops avoiding unnecessary iterations for optimized code.

Hope this guide gave you a comprehensive overview of loop control in Python. Please leave a comment if you have any questions!