鱼C论坛

 找回密码
 立即注册
查看: 962|回复: 12

第17讲的最后一段代码中的break跳出循环,为什么还要打印7次内层循环的print()

[复制链接]
发表于 2024-11-19 14:11:39 | 显示全部楼层 |阅读模式

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

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

x
break 不是直接跳出内层循环,到了外层的while了么
那样的话就没有print了啊,只有一个day += 1了, 为什么视频里还说有print 然后继续打印7次呢
day = 1
hour = 1
while day <= 7:
    while hour <= 8:
        print("今天一定学习8个小时")
        hour += 1
        if hour >1:
            break
    day += 1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2024-11-19 15:23:20 | 显示全部楼层
FishC 发表于 2024-11-19 14:17
看起来代码片段有些不完整,但我可以猜测您的问题。通常,`break`语句是用来立即终止当前循环的。如果`brea ...

有点不太懂啊,这是小甲鱼视频[知识点备忘] 第017讲:了不起的分支和循环(IV)中最后一段视频的完整代码,break直接跳出内层循环的话,那内层循环 while hour<=8 中的print()不是不执行么,那就是只打印1次啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-19 15:26:15 | 显示全部楼层
day = 1
hour = 1
while day <= 7:
    while hour <= 8:
        print("今天一定学习8个小时")
        hour += 1
        if hour >1:
            break

    day += 1
为什么打印了7次呢,break不是跳出了循环么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-21 12:51:02 | 显示全部楼层
jackz007 发表于 2024-11-19 17:15
这个嵌套循环比较特殊,由于内循环里有这一句:

        if 的条件 hour > 1 恒定为 True, ...

其实我实在想是不是 break直接就跳出了内循环,内循环的语句就不执行了,那样的话 就只打印一次,但是吧,现在是打印了7次,相当于每次都还要进到内循环中一次,进7次
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-21 13:06:37 | 显示全部楼层
还有一个问题就是,代码中去掉内循环的if条件,改成下边这样,为什么打印8次,不是应该7次么,外循环只有7次啊:
day = 1
hour = 1
while day <= 7:
    while hour <= 8:
        print("今天一定学习8个小时")
        hour += 1
    day += 1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-21 18:16:13 | 显示全部楼层
jackz007 发表于 2024-11-21 14:07
因为在 day = 1 的那次循环中,内循环会循环 8 次。

不太懂,day = 1 不是外循环1次么,然后内循环,外循环7次以后,day 等于7,第八次的时候外循环就不符合了,内循环就终止了,那不就是7次么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-23 07:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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