Breaking out of nested loop

jcm jmarshal at mathworks.com
Tue Feb 27 17:32:17 CET 2001


Phlip <phlip_cpp at my-deja.com> wrote:
> Proclaimed Dan from the mountaintops:

>> 
>> How might one go about breaking out of a multi level loop?
>> 
>> For instance, the following code will go into an endless loop.
>> 
>> while(1):
>>     while(1):
>>         break

...

> Your best bet (just like in a language that has a 'goto') is 'return'.

> Otherwiset you can 'raise' (irritating style that reminds one of VB), or 
> you can add a flag to the 'while' conditions and reset it at the 'break' 
> point.

Something I wouldn't mind seeing added to Python is a generalization
of break/continue statement[s], allowing you to break out of multiple
loops:

  break_or_continue_stmt: 'break'
                        | 'continue'
                        | 'break' break_or_continue_stmt

So you can do something like:

  while a:  # loop A
     ...
     while b:  # loop B
        ...
        while c:  # loop C
           ...
           break break  # breaks loops C and B, bringing
                        # you back to the body of loop A



More information about the Python-list mailing list