鱼C论坛

 找回密码
 立即注册
查看: 1212|回复: 8

[已解决]009

[复制链接]
发表于 2020-7-9 18:56:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
while True:
    while True:
        break
        print(1)
    print(2)
    break
print(3)
复制代码
会打印:
2
3

因为 break 只能跳出一层循环,记住咯!

这个解释没太看懂。。。。
最佳答案
2020-7-9 19:01:55
while True: # 把这个循环标记为 1 号循环
    while True: # 把这个循环标记为 2 号循环
        break # 把这个循环标记为 1 号 break
        print(1)
    print(2)
    break # 把这个循环标记为 2 号 break
print(3)

1 号 break 可以做到跳出 2 号循环,但是它不能做到直接跳出 1 号 2 号 两层循环

必须得在 1 号循环内 在放置一个 2 号 break,才能做到跳出 1 号循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-9 18:59:21 | 显示全部楼层
本帖最后由 Twilight6 于 2020-7-9 19:03 编辑



你这里两个 while 循环,内嵌的循环里面有 break 所以 break 只会退出内部的那个小循环,不影响外部的大循环

你外部的大循环下也有 break ,所以此时再次退出一层循环

在循环中,只要一遇到 break 同循环中下面的代码就不在执了

while True:
    while True:
        break   # 这里只会退出所在的循环中的循环体,即这个 break 所在的是内层循环,所以退出的是里面的循环
        print(1)
    print(2)
    break  # 同理,这里只会退出所在的循环中的循环体,即这个 break 所在的是最外层循环,所以退出的是最外面的循环
print(3)


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-7-9 19:01:55 | 显示全部楼层    本楼为最佳答案   
while True: # 把这个循环标记为 1 号循环
    while True: # 把这个循环标记为 2 号循环
        break # 把这个循环标记为 1 号 break
        print(1)
    print(2)
    break # 把这个循环标记为 2 号 break
print(3)

1 号 break 可以做到跳出 2 号循环,但是它不能做到直接跳出 1 号 2 号 两层循环

必须得在 1 号循环内 在放置一个 2 号 break,才能做到跳出 1 号循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-9 19:04:13 | 显示全部楼层
liuzhengyuan 发表于 2020-7-9 19:01
while True: # 把这个循环标记为 1 号循环
    while True: # 把这个循环标记为 2 号循环
        break  ...

谢谢你的回复,能否在解释一下为啥打印结果是2,3呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-9 19:05:22 | 显示全部楼层
zmq 发表于 2020-7-9 19:04
谢谢你的回复,能否在解释一下为啥打印结果是2,3呢?

因为 2 号循环中 break 在 print 的前面

还没有输出 1,就已经跳出循环了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-9 19:11:55 | 显示全部楼层
楼上都是正解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-9 19:25:38 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-9 19:38:19 | 显示全部楼层

你这……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-9 19:43:14 | 显示全部楼层
首先要确定3是肯定会在最后印出来的
然后再来看循环

while True:         #一层
    while True:     #二层
        break
        print(1)
    print(2)
    break

执行过程……


开始执行一层循环……
开始执行二层循环……
跳出二层循环……
打印"2"……
跳出一层循环……
打印"3"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-19 19:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表