Search code examples
pythonpython-3.xloopswhile-loopnested-loops

How to return to previously nested `while True` loops?


Say I have something in this kind of format:

while True1:
    if something:
        do some thing
    elif something else:
        do something else
        while True2:
            if something1:
                do some thing1
            if something2:
                do some thing2
            if want to end this while True2 loop
                go back to first while True1 loop
    elif something else else:
        do some thing else else

etc.

How can I make something within a while True loop go back to a previous while True loop that it was nested inside?


Solution

  • The break statement does just that.

    while True: #1
        if something:
            do something
        elif something else:
            do something else
            while True: #2
                if something1:
                    do something
                if something2:
                    do something else
                if want to end this while True #2 loop:
                    break            # will break out of the innermost loop only
        elif something else else:
            do some thing else else
    

    Read more: Control Flow Tools