鱼C论坛

 找回密码
 立即注册
查看: 3140|回复: 10

[已解决]关于break会在哪里跳出循环

[复制链接]
发表于 2020-2-16 14:42:07 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 yunye1994 于 2020-2-16 14:58 编辑

break会跳出当前循环,但是我没看懂这里到底里三层外三层有几个循环:

while True:

        while True:

        break

        print(1)

     print(2)

     break

print(3)


(结果显示以上程序会打印2和3)
最佳答案
2020-2-16 14:56:02
本帖最后由 沉好人 于 2020-2-16 14:58 编辑

  1. while True:        #第一层循环
  2.         while True:        #第二层循环
  3.                 break        #跳出第二层循环所以print(1)没有实现
  4.                 print(1)
  5.         print(2)                #跳出循环后就接着执行这条语句
  6.         break                #跳出循环
  7. print(3)                        #最后执行print(3),这条是在循环外的

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-16 14:56:02 | 显示全部楼层    本楼为最佳答案   
本帖最后由 沉好人 于 2020-2-16 14:58 编辑

  1. while True:        #第一层循环
  2.         while True:        #第二层循环
  3.                 break        #跳出第二层循环所以print(1)没有实现
  4.                 print(1)
  5.         print(2)                #跳出循环后就接着执行这条语句
  6.         break                #跳出循环
  7. print(3)                        #最后执行print(3),这条是在循环外的

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-16 14:59:02 | 显示全部楼层
这个程序一共有两个while,也就是说一共有两个循环,其中第二while的循环是在第一个里面嵌套的;而break呢,一共也有两个,其中第一个break在第二个循环里面,所以当程序运行到第二层循环时,遇到break就跳出第二个循环了,自然,后面的print(1),也就不执行了,但是第一层循环并没有结束啊,程序继续运行第一层循环里的语句,即print(2),所以打印出了2,接下来遇到了第二个break,此时会跳出第一层循环,到此为止,程序完全跳出了所有的循环,执行最后一个语句print(3),就会打印出3了!
综上,要看语句的缩进判断break在哪一个循环,在哪个循环,遇到break,哪个循环就会结束!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-2-16 15:23:41 | 显示全部楼层

请教为啥跳出循环之后还能执行print(2)呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-16 15:24:24 | 显示全部楼层
Sungne_jer 发表于 2020-2-16 14:59
这个程序一共有两个while,也就是说一共有两个循环,其中第二while的循环是在第一个里面嵌套的;而break呢 ...

谢谢解答
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-16 15:27:05 | 显示全部楼层
yunye1994 发表于 2020-2-16 15:23
请教为啥跳出循环之后还能执行print(2)呀

只是跳出了第二层循环,print(2)是在第一层循环里的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-16 15:29:04 | 显示全部楼层

不客气,共同学习
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-16 15:42:58 | 显示全部楼层
while True:

        while True:

        break    # 这里先跳出了这层循环,所以 1 不会被打印

        print(1)

     print(2)

     break

print(3)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-16 15:47:15 | 显示全部楼层
yunye1994 发表于 2020-2-16 15:23
请教为啥跳出循环之后还能执行print(2)呀


因为只是跳出了那一层循环
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-16 15:51:31 | 显示全部楼层
yunye1994 发表于 2020-2-16 15:23
请教为啥跳出循环之后还能执行print(2)呀

只是跳出第二层循环,第一层循环没有被跳出。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-16 17:50:44 | 显示全部楼层
谢谢大家的解答~不胜感激
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-3 02:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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