タイトルで言いたいことがすんでしまった^^)
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.