先看一个简单的例子
for i in range(5):
if i == 3:
break
print(i)
else:
print('只有循环完整执行,这句才会执行')
# 输出:
0
1
2
接着我们把break换成continue试试
for i in range(5):
if i == 3:
continue
print(i)
else:
print('只有循环完整执行,这句才会执行')
# 输出
0
1
2
4
只有循环完整执行,这句才会执行
因此,准确地概括下,就是每一次循环都执行了(可以没有执行完),然后就会执行else。
利用for-else实现跳出两层循环
直接跳出两层循环。这个在java里很容易实现,每个循环都可以标记,可以指定跳到哪一层。python里可以这样使用。当没有异常时,3层循环可以完整走一遍。当第3层遇到异常时,可以直接跳到第1层。因为没有异常时,continue会保证第二个break不会执行。
for i in range(5):
for j in range(5):
for k in range(5):
if k == 3:
print('遇到异常情况')
break
else:
continue
break