タイトルで言いたいことがすんでしまった^^)
forループを途中で脱出するにはbreakを使うけど、breakではひとつのループしか脱出してくれない。たとえば次の例ではbreakしても外側のforループは回り続けて、else節が実行される。
for i in range(5): for j in range(5): k = i + j print k if k > 5: break else: print "End of nested loop."
^o^ > python nested_loop.py 0 1 2 3 4 1 2 3 4 5 2 3 4 5 6 3 4 5 6 4 5 6 End of nested loop.
外側のforループもいっぺんに脱出したいときには、例外を使う。たとえばこんなふうに:
class EndLoop(Exception): pass try: for i in range(5): for j in range(5): k = i + j print k if k > 5: raise EndLoop else: print "End of nested loop." except EndLoop: print "Break in loop."
実行すると、ちゃんと途中でふたつのforループを抜け出していることがわかる。
^o^ > python nested_loop2.py 0 1 2 3 4 1 2 3 4 5 2 3 4 5 6 Break in loop.