continue
continue 在语法上只会出现于 for 或 while 循环所嵌套的代码中。
它会继续执行最近的外层循环的下一个轮次,或者在没有下一轮次时转往 else 子句执行。
当 continue 将控制流传出一个带有 finally 子句的 try 语句时,该 finally 子句会先被执行然后再真正开始循环的下一个轮次。
for i in range(3):
for j in range(3):
if j == 1:
print(f'i={i},j={j}')
continue
i=0,j=1
i=1,j=1
i=2,j=1
for i in range(3):
for j in range(3):
if j == 2:
print(f'i={i},j={j}')
continue
else: # 属于内层循环,每次内层循环结束都执行
print('end')
i=0,j=2
end
i=1,j=2
end
i=2,j=2
end
for i in range(3):
for j in range(3):
if j == 2:
print(f'i={i},j={j}')
continue
else: # 属于外层循环,外层循环结束才执行
print('end')
i=0,j=2
i=1,j=2
i=2,j=2
end
# 引发异常直接跳过 continue
# 无异常则继续执行完 finally 才继续下一次循环
for i in range(3):
try:
print(f'3/i={3/i}')
continue
except ZeroDivisionError as e:
print(e)
finally:
print(f'i={i}')
print(i) # 无异常时被跳过
else:
print('end')
division by zero
i=0
0
3/i=3.0
i=1
3/i=1.5
i=2
end