python - 简单的嵌套while循环
问题描述
非常感谢有人可以简单解释为什么在代码 1 中多次打印大“X”但在代码 2 中没有打印。唯一的区别在于 break 语句?
代码 1
flag=False
i=0
while not flag:
print(f"big {i}")
while True:
i+=1
print(i)
if i==5:
flag=True
print("cond reached")
break
输出
大 0 1 大 1 2 大 2 3 大 3 4 大 4 5 条件达到
代码 2
flag=False
i=0
while not flag:
print(f"big {i}")
while True:
i+=1
print(i)
if i==5:
flag=True
print("cond reached")
break
输出
大 0 1 2 3 4 5 条件达到
解决方案
在第二段中,该break
语句仅在 时执行i=5
,因此代码一直停留在内循环中,直到 i = 5。发生这种情况时,标志设置为True
,这意味着不再执行外循环。换句话说:
在第一段代码中,外层while循环被多次调用,因为内层循环总是中断,而在第二段代码中,外层while循环只被调用一次,因为内层循环只在何时中断i=5
,这也设置了外循环的断开条件。
推荐阅读
- django - 如何在用户的 django 管理面板中使用相关字段上的日期过滤器获得统计信息?
- visual-studio-2017 - 无法在 Visual Studio 中打开 AVD 管理器,互联网连接错误消息
- javascript - 使用 datetimepicker 时如何显示接下来的 7 天?
- javascript - Chartjs注释插件彩色框颜色在来回切换后求和
- django - 向 Docker 容器提供配置文件的推荐方式
- linux - 为什么第一级进程init放在/sbin中?
- kubernetes - 将 Gcloud vpn 与 Kubernetes 一起使用时的访问限制
- flask - 烧瓶restful强制执行所需的类型参数
- python-3.x - Lambda 函数无权执行 sts:AssumeRole
- python - 如何将文本添加到特定的文件行?