How to gracefully exit Python while loop on condition?

How can I exit while loop Python gracefully when a certain condition is met? In the code below, I’d like the while loop to exit as soon as the sum of a + b + c equals 1000. However, when testing with print statements, it continues until the for loops finish. I tried using while True and setting x = False in the if statement, but that resulted in an infinite loop. What is the best way to exit the while loop as soon as the condition is met?

a = 3
b = 4
c = 5
x = 0
while x != 1:
    for a in range(3, 500):
        for b in range(a + 1, 500):
            c = (a**2 + b**2)**0.5
            if a + b + c == 1000:
                print a, b, c
                print a * b * c
                x = 1

What is the most graceful and efficient way to exit the while loop in this situation?

Use break to Exit the Loop

I’ve worked with loops in Python for years, and trust me, the break statement is your best friend when you want to exit cleanly. Here’s how it works:

a = 3
b = 4
c = 5
while True:
    for a in range(3, 500):
        for b in range(a + 1, 500):
            c = (a**2 + b**2)**0.5
            if a + b + c == 1000:
                print(a, b, c)
                print(a * b * c)
                break  # Exit inner for loop
        else:
            continue  # Only continue if inner loop did not break
        break  # Exit outer for loop
    break  # Exit the while loop once the condition is met

Using break like this ensures the loop exits exactly when the condition is satisfied, and it avoids unnecessary iterations.

Using Flag Variable with break

When you’ve been in situations where things get more complex, like in deeply nested loops, using a flag variable makes things explicit. It’s a neat trick to keep control over your logic flow.

a = 3
b = 4
c = 5
exit_flag = False
while not exit_flag:
    for a in range(3, 500):
        for b in range(a + 1, 500):
            c = (a**2 + b**2)**0.5
            if a + b + c == 1000:
                print(a, b, c)
                print(a * b * c)
                exit_flag = True
                break  # Break inner for loop
        if exit_flag:
            break  # Break outer for loop

The exit_flag ensures the condition is checked consistently across loops. It’s a bit more verbose but gives you a structured way to handle complex exit conditions.

Simplify with else Clause for for Loops

Honestly, I love keeping my code clean and concise. One underrated feature in Python is the else clause in loops. You can pair it with break to make the intent crystal clear.

a = 3
b = 4
c = 5
while True:
    for a in range(3, 500):
        for b in range(a + 1, 500):
            c = (a**2 + b**2)**0.5
            if a + b + c == 1000:
                print(a, b, c)
                print(a * b * c)
                return  # Exit function and thus the while loop
        else:
            continue  # Continue outer for loop if inner does not break
        break  # Exit outer for loop if condition is met
    break  # Exit the while loop

The else clause here is perfect for scenarios where a loop finishes without a break. It makes your code more intuitive while still keeping it powerful.