Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

How to end a while loop in Python

Understanding the While Loop

In the realm of programming, loops are a staple concept that every programmer, beginner or experienced, should wrap their heads around. A while loop is one such concept that can be likened to a song on repeat mode. Just like the song will keep playing until you stop it, a while loop in Python continues to execute as long as its controlling condition remains true.

Let's consider a simple example.

counter = 0
while counter < 5:
    print(counter)
    counter = counter + 1

In the example above, the while loop will keep printing the value of counter and incrementing it by one, until counter is no longer less than 5.

The Break Statement

But, what if you want to stop the loop before counter reaches 5? Maybe you have a condition in your loop that, if met, should end the loop prematurely. This is where the break statement comes into play.

Think of the break statement as the button you press to stop the song playing on repeat. It's a command that tells Python to exit the loop immediately, ignoring whatever else might come after it in the loop.

Here's how you can use the break statement:

counter = 0
while counter < 5:
    if counter == 3:
        break
    print(counter)
    counter = counter + 1

With this modification, our loop will stop executing as soon as counter equals 3, and thus, only 0, 1, and 2 will be printed.

The Continue Statement

What if we want to skip one repetition of the loop but not entirely stop it? Here's where the continue statement comes in handy. The continue statement, much like skipping a song on a playlist, tells Python to skip the rest of the current loop and move on to the next repetition.

Let's illustrate this with a code example:

counter = 0
while counter < 5:
    counter = counter + 1
    if counter == 3:
        continue
    print(counter)

In this case, when counter equals 3, the continue statement is executed. Python will skip the print(counter) command and return to the start of the loop, increasing counter by one. As a result, the numbers 1, 2, 4, and 5 will be printed, but 3 will be skipped.

Making Use of the Else Statement

Python while loop also supports an else statement that can be combined with the break statement for more control over your loop. The else block will execute if the loop has finished iterating (i.e., the while condition has become false), but not if the loop was exited via a break statement.

Let's see this in action:

counter = 0
while counter < 5:
    if counter == 3:
        break
    print(counter)
    counter = counter + 1
else:
    print("Loop has ended")

In this example, because the break statement was executed, the else block did not run. Thus, "Loop has ended" is not printed.

Ensuring the Loop Does Not Run Forever

An important aspect of working with loops is ensuring that they don't run indefinitely. Imagine pressing the repeat button on your music player and then it gets stuck; the song would play on and on. Similarly, a while loop with a condition that never turns false will run forever, eating up your system's resources.

To prevent this, always ensure that the controlling condition of your while loop will become false at some point. This is usually achieved by modifying a variable within the loop (like incrementing counter in our examples) that will eventually make the condition false.

Conclusion

And there you have it! Just like becoming a master DJ involves understanding when to let the song play, when to stop, and when to skip, becoming proficient in Python requires understanding how to control your while loops with break, continue, and else.

Remember, programming is a lot like music. It's an art of arranging instructions in such a way that they create a harmonic function. Each statement in your code is a note, and the while loop, break, continue, and else are the rhythm with which you control the flow of your code. So next time when you're stuck in a loop, just think of it as a song on repeat, and use break or continue to change the tune as needed!