- 常规的break跳出当前循环,continue终止当前,不会跳出整个循环,当有多个循环时,如何跳出整个循环
break跳出当前最深的循环
def test1():
for i in range(3):
for j in range(3):
for k in range(3):
if i ==j==k==1:
break
else:
print (i,j,k)
test1()
0 0 0
0 0 1
0 0 2
0 1 0
0 1 1
0 1 2
0 2 0
0 2 1
0 2 2
1 0 0
1 0 1
1 0 2
1 1 0
1 2 0
1 2 1
1 2 2
2 0 0
2 0 1
2 0 2
2 1 0
2 1 1
2 1 2
2 2 0
2 2 1
2 2 2
continue跳出当前轮的操作
def test2():
for i in range(3):
for j in range(3):
for k in range(3):
if i ==j==k==1:
continue
else:
print (i,j,k)
test2()
0 0 0
0 0 1
0 0 2
0 1 0
0 1 1
0 1 2
0 2 0
0 2 1
0 2 2
1 0 0
1 0 1
1 0 2
1 1 0
1 1 2
1 2 0
1 2 1
1 2 2
2 0 0
2 0 1
2 0 2
2 1 0
2 1 1
2 1 2
2 2 0
2 2 1
2 2 2
python跳出多层循环
抛出异常
class getOutOfLoop(Exception):
pass
try:
for i in range(3):
for j in range(3):
for k in range(3):
if i == j ==k ==1:
raise getOutOfLoop()#抛出一个异常,就会跳出所有循环
else:
print(i,j,k)
except getOutOfLoop:
pass
print('done')
0 0 0
0 0 1
0 0 2
0 1 0
0 1 1
0 1 2
0 2 0
0 2 1
0 2 2
1 0 0
1 0 1
1 0 2
1 1 0
done
return程序结束
def test3():
for i in range(3):
for j in range(3):
for k in range(3):
if i ==j==k==1:
return
else:
print (i,j,k)
print('done')
test3()
0 0 0
0 0 1
0 0 2
0 1 0
0 1 1
0 1 2
0 2 0
0 2 1
0 2 2
1 0 0
1 0 1
1 0 2
1 1 0