Skip to content Skip to sidebar Skip to footer

How To Break Out Of Nested Loops In Python?

what is the difference between these sets of loops? for i in range(0,5): print i,'i' for x in range(0,4): print x,'x' break AND for i in range(0,5): print

Solution 1:

A break will only break out of the inner-most loop it's inside of. Your first example breaks from the outer loop, the second example only breaks out of the inner loop.

To break out of multiple loops you need use a variable to keep track of whether you're trying to exit and check it each time the parent loop occurs.

is_looping = True
for i in range(5): # outer loop
    for x in range(4): # inner loop
        if x == 2:
            is_looping = False
            break # breakout of the inner loop

    if not is_looping:
        break # breakout of outer loop

Solution 2:

In Python you can write an else clause for a loop, which is executed when no break happens in the loop, or when the loop terminates naturally so to speak. Sometimes you can use it to break from multiple loops.

for i in some_range:
    for j in some_other_range:
        if need_break(i, j):
            breakelse:
        continuebreak # break happens ininner loop, break outer loop too.

Solution 3:

You can also do this with an exception, like this:

classForLoopBreak(Exception):
    passtry:
    for i inrange(5):
        for j inrange(5):
            print"({}, {})".format(i, j)
            if i == 1and j == 1:
                # Break out of both for loops for this caseraise ForLoopBreak()

except ForLoopBreak:
    pass# Output
(0, 0)
(0, 1)
(0, 2)
(0, 3)
(0, 4)
(1, 0)
(1, 1)

Solution 4:

In the first code, the 'break' belongs to the outer 'for'. Hence the inner 'for' loop will be executed without any break, whereas, the outer 'for' will be executed only once.

In the second code, the 'break' belongs to the inner 'for'. So outer 'for' will be executed without any break, whereas, the inner 'for' will be executed only once in each iteration.

The difference is with respect to the indentation.

Post a Comment for "How To Break Out Of Nested Loops In Python?"