鱼C论坛

 找回密码
 立即注册
查看: 2472|回复: 7

[已解决]关于break

[复制链接]
发表于 2023-4-24 07:08:18 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 lzb1001 于 2023-4-24 07:18 编辑

while True:
        while True:
                break
                print(1)
        print(2)
        break
print(3)


返回结果:

2
3

而:

while True:
    while True:
        break
        print(1)
    break
    print(2)
    break
print(3)

运行后:

3


分别怎么理解?
最佳答案
2023-5-20 15:08:28
[b]该代码段是一个嵌套的无限循环,它的执行流程如下:

1. 进入 while True 循环的第一层,执行到第2行时进入第二层 while True 循环。
2. 在第二层 while True 循环中,执行到第3行时遇到 break 关键字,跳出内层循环,
   然后控制权返回到外层循环继续执行,因为内层循环已经跳出,所以不会执行第4行的代码。
3. 在外层循环中,执行到第6行时遇到 break 关键字,跳出整个循环,
   然后执行第7行的 print(3) 语句,输出结果为 3。
   
因此该代码最终输出的结果为:
2
3


而在第二个代码示例中,我们在第二个内部循环之后立即使用了 break 语句,因此 print(2) 和外部的 break 语句都不会被执行。最终,只有 print(3) 被输出。

总之,break 语句可以用于某个循环中止并退出该循环,而外部的循环将继续进行。因此,在编写代码时需要注意循环的逻辑结构和控制语句的位置,以确保程序能够按照预期的方式执行。

[/b]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-24 07:17:11 | 显示全部楼层
本帖最后由 sfqxx 于 2023-5-20 15:08 编辑

该代码段是一个嵌套的无限循环,它的执行流程如下:

1. 进入 while True 循环的第一层,执行到第2行时进入第二层 while True 循环。
2. 在第二层 while True 循环中,执行到第3行时遇到 break 关键字,跳出内层循环,
   然后控制权返回到外层循环继续执行,因为内层循环已经跳出,所以不会执行第4行的代码。
3. 在外层循环中,执行到第6行时遇到 break 关键字,跳出整个循环,
   然后执行第7行的 print(3) 语句,输出结果为 3。
   
因此该代码最终输出的结果为:
2
3


而在第二个代码示例中,我们在第二个内部循环之后立即使用了 break 语句,因此 print(2) 和外部的 break 语句都不会被执行。最终,只有 print(3) 被输出。

总之,break 语句可以用于某个循环中止并退出该循环,而外部的循环将继续进行。因此,在编写代码时需要注意循环的逻辑结构和控制语句的位置,以确保程序能够按照预期的方式执行。

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

使用道具 举报

 楼主| 发表于 2023-4-24 07:24:14 | 显示全部楼层
sfqxx 发表于 2023-4-24 07:17
该代码段是一个嵌套的无限循环,它的执行流程如下:

1. 进入 while True 循环的第一层,执行到第2行时进 ...


那下面这个呢:

while True:
        while True:
                break
                print(1)
        break
        print(2)
        break
print(3)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-24 10:05:34 | 显示全部楼层
lzb1001 发表于 2023-4-24 07:24
那下面这个呢:

while True:

这个代码段的执行流程如下:

1. 进入第一层的 while True 循环,执行到第2行时进入第二层的 while True 循环。
2. 在第二层的 while True 循环中,执行到第3行时遇到 break 关键字,跳出内层循环,然后控制权返回到外层循环继续执行。因为内层循环已经跳出,所以不会执行第4行的代码。
3. 在外层循环中,执行到第6行时遇到 break 关键字,跳出整个循环。
4. 执行第9行的 print(3) 语句,输出结果为 3。

因此,该代码最终输出的结果为:
3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-24 12:05:55 | 显示全部楼层
isdkz 发表于 2023-4-24 10:05
这个代码段的执行流程如下:

1. 进入第一层的 while True 循环,执行到第2行时进入第二层的 while Tru ...

第6行时遇到 break 关键字?
4. 执行第9行的 print(3) 语句……?

行数是不是搞错了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-24 12:15:31 | 显示全部楼层
lzb1001 发表于 2023-4-24 12:05
第6行时遇到 break 关键字?
4. 执行第9行的 print(3) 语句……?

对,数多了一行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-20 11:13:51 | 显示全部楼层
第一段代码中,存在一个外层循环和一个内层循环。由于内层循环的 break 语句会导致内层循环直接从第一次迭代开始就跳出了,所以内层循环只迭代了一次,没有输出任何结果。然后在内层循环下方的 print(2) 语句处打印了数字 2,最后通过 break 跳出了外层循环,打印了数字 3。

第二段代码中,同样存在一个外层循环和一个内层循环。但是在内层循环中,使用的是带有 break 的 if 语句,因此即使条件满足,也只会跳出 if 语句而不是整个内层循环。在 if 语句下方打印了数字 2,接着通过 break 跳出了外层循环,最后打印了数字 3。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-20 15:08:28 | 显示全部楼层    本楼为最佳答案   
[b]该代码段是一个嵌套的无限循环,它的执行流程如下:

1. 进入 while True 循环的第一层,执行到第2行时进入第二层 while True 循环。
2. 在第二层 while True 循环中,执行到第3行时遇到 break 关键字,跳出内层循环,
   然后控制权返回到外层循环继续执行,因为内层循环已经跳出,所以不会执行第4行的代码。
3. 在外层循环中,执行到第6行时遇到 break 关键字,跳出整个循环,
   然后执行第7行的 print(3) 语句,输出结果为 3。
   
因此该代码最终输出的结果为:
2
3


而在第二个代码示例中,我们在第二个内部循环之后立即使用了 break 语句,因此 print(2) 和外部的 break 语句都不会被执行。最终,只有 print(3) 被输出。

总之,break 语句可以用于某个循环中止并退出该循环,而外部的循环将继续进行。因此,在编写代码时需要注意循环的逻辑结构和控制语句的位置,以确保程序能够按照预期的方式执行。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-27 12:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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