标记变量控制嵌套循环退出需三步:外层前定义flag=False;内层触发条件时设flag=True并break;外层循环中紧跟内层后加if flag: break。

用标记变量控制嵌套循环退出
标记变量(也叫标志位、flag)是最常用也最易理解的方式。它的核心思路是:用一个布尔变量记录“是否该退出”,内层满足条件时设为 True,外层每次循环开始或结束前检查它,一发现为真就立刻 break。
关键操作步骤
标记变量不是自动生效的,必须配合显式的判断和 break 才能跳出外层。注意三点:
- 变量需在最外层循环之前定义,初始值一般为 False
- 内层循环中一旦触发退出条件,先设 flag = True,再立即 break 内层
- 内层 break 后,控制权回到外层循环体;此时必须紧接着加 if flag: break,否则外层会继续下一轮
典型写法示例
查找二维列表中第一个值为 13 的元素,并退出全部循环:
matrix = [[1, 5, 9], [10, 12, 13], [14, 15, 16]]
found = False
for row in matrix:
for num in row:
if num == 13:
found = True
break
if found:
break
print("已退出所有循环")
常见误区提醒
很多人以为设了 flag = True 就够了,其实漏掉外层的 if flag: break 是最常犯的错误。还有一种容易混淆的情况:把判断写在内层 break 之后但仍在内层循环体内,这样根本执行不到——判断必须放在外层循环体里,且紧随内层循环之后。










