Posted By: Anonymous
Is there an easier way to break out of nested loops than throwing an exception? (In Perl, you can give labels to each loop and at least continue an outer loop.)
for x in range(10): for y in range(10): print x*y if x*y > 50: "break both loops"
I.e., is there a nicer way than:
class BreakIt(Exception): pass try: for x in range(10): for y in range(10): print x*y if x*y > 50: raise BreakIt except BreakIt: pass
It has at least been suggested, but also rejected. I don’t think there is another way, short of repeating the test or re-organizing the code. It is sometimes a bit annoying.
In the rejection message, Mr van Rossum mentions using
return, which is really sensible and something I need to remember personally. 🙂