鱼C论坛

 找回密码
 立即注册
查看: 1453|回复: 6

[已解决]关于循环嵌套

[复制链接]
发表于 2021-8-11 16:54:15 | 显示全部楼层 |阅读模式

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

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

x
day = 1
hour = 1
while day <= 7:
    while hour <= 8:
        print('老子今天一定学习八个小时')
        hour += 1
        if hour > 1:
            break
    day += 1
这个代码打出的字符串为7个,而如果将if hour > 1:  break删除,字符串仍为七个。这是为什么啊。
最佳答案
2021-8-11 19:07:30
未修改前,每次进入内循环执行一次跳出,因为外层循环条件day小于等于7,所以进入7次内循环,共有七条消息打印
修改后,在day=1时进入内循环,内循环执行8次后hour=9终止,当再次判断内循环条件时因hour=9,所以内循环不再执行,直到程序结束,共有8条消息打印
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-11 16:58:41 | 显示全部楼层
因为day大于7就不循环了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-11 19:07:30 | 显示全部楼层    本楼为最佳答案   
未修改前,每次进入内循环执行一次跳出,因为外层循环条件day小于等于7,所以进入7次内循环,共有七条消息打印
修改后,在day=1时进入内循环,内循环执行8次后hour=9终止,当再次判断内循环条件时因hour=9,所以内循环不再执行,直到程序结束,共有8条消息打印
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-11 22:17:49 | 显示全部楼层
break没意义吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-11 22:18:51 | 显示全部楼层
break之后又到了while day <= 7:
又进入了while hour <= 8:
又print()
我感觉没有意义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-11 23:03:38 | 显示全部楼层
在第一次循环中,hour = 1,在第二个循环中在if hour > 1:前有一个hour += 1,此时hour = 2,所以break一定会执行,所以会通过第一个循环执行7遍,而将if hour > 1: break删除后,会执行第二个循环7遍,而后面hour = 9了,所以就不会进第二个循环了.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-12 12:10:25 | 显示全部楼层
回忆。 发表于 2021-8-11 19:07
未修改前,每次进入内循环执行一次跳出,因为外层循环条件day小于等于7,所以进入7次内循环,共有七条消息 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-13 15:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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