如何在 Python 中跳出多层的嵌套循环
Posted on Wed, 25 Dec 2024 16:10:38 +0800 by LiangMingJian
如何在 Python 中跳出多层的嵌套循环
需求
从嵌套循环中跳出,结束循环。
使用"旗帜"变量实现
# 添加"旗帜"变量
break_out_flag = False
for i in range(5):
for j in range(5):
if j == 2 and i == 0:
break_out_flag = True
break
if break_out_flag:
break
在上面的代码中,变量 break_out_flag 作为一个旗帜告诉程序该跳出这个外循环。
通过主动引发异常实现
# 主动引发异常
try:
for i in range(5):
for j in range(5):
if j == 2 and i == 0:
raise StopIteration
except StopIteration:
pass
在上面的代码中,我们把异常当做关键词 break 使用,通过主动抛出异常来跳出所有循环。
使用相同的条件语句实现
# 使用相同的条件语句
for i in range(5):
for j in range(5):
if j == 2 and i == 0:
break
if j == 2 and i == 0:
break
由于一个条件语句可以中断一次循环,那么使用相同的条件语句同样也可以再一次中断一个循环。
使用 For-Else 语句实现
# 使用 For-Else 语句
for i in range(5):
for j in range(5):
if j == 2 and i == 0:
break
else: # 仅在内循环不中断时执行
continue
break
在 For-Else 语句中, else 下面的语句只有当内循环执行完成且没有任何中断时才会执行。当内循环被 break 时,else 下的语句将会被跳过,For-Else 的意思是执行循环,然后再干什么。
将嵌套循环进行封装
# 将嵌套循环放在一个函数里
def check_sth():
for i in range(5):
for j in range(5):
if j == 2 and i == 0:
return
check_sth() # 执行这个函数
将嵌套循环放在一个函数中,当需要跳出嵌套循环时,便可以使用 return 这个关键词替代 break 。