鱼C论坛

 找回密码
 立即注册
查看: 88|回复: 3

[已解决]while循环嵌套语句的问题

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

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

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

x
小甲鱼老师在了不起的分支和循环(IV)课程中讲的学习7天,每天学习8小时的例子我做了以下修改:
day = 1
hour = 1

while day<= 7:
    while hour <= 8:
        print(f'在day{day}中,我学习了{hour}小时')
        hour +=1
    day += 1

我想实现的效果是打印出1-7天中的每天,我学习了1-8小时,效果如下:
在day1中,我学习了1小时
在day1中,我学习了2小时
在day1中,我学习了3小时
在day1中,我学习了4小时
在day1中,我学习了5小时
在day1中,我学习了6小时
在day1中,我学习了7小时
在day1中,我学习了8小时
在day2中,我学习了1小时
在day2中,我学习了2小时
在day2中,我学习了3小时
在day2中,我学习了4小时
在day2中,我学习了5小时
在day2中,我学习了6小时
在day2中,我学习了7小时
在day2中,我学习了8小时
……
在day7中,我学习了1小时
在day7中,我学习了2小时
在day7中,我学习了3小时
在day7中,我学习了4小时
在day7中,我学习了5小时
在day7中,我学习了6小时
在day7中,我学习了7小时
在day7中,我学习了8小时

但在执行语句后,只执行了day1中的内层hour循环语句,结果如下:
在day1中,我学习了1小时
在day1中,我学习了2小时
在day1中,我学习了3小时
在day1中,我学习了4小时
在day1中,我学习了5小时
在day1中,我学习了6小时
在day1中,我学习了7小时
在day1中,我学习了8小时
外层day的循环语句并未被执行,请大神指定一下这是为什么?应该如何修改?谢谢指点


最佳答案
2024-11-16 12:00:13
本帖最后由 jackz007 于 2024-11-16 12:07 编辑
day = 1
hour = 1             # 内循环变量不可以在外循环外初始化,应该在外循环内,内循环开始前进行初始化
while day<= 7:
    while hour <= 8:
        在 day = 1 时,内循环结束时,hour = 9,从 day = 2 起,由于 hour 的值一直是 9,因而无法进入内循环,使内循环失效,得这样改:
day = 1
while day<= 7:
    hour = 1         # 内循环变量应该在这里初始化
    while hour <= 8:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-11-16 11:21:44 | 显示全部楼层
你提到的示例似乎想通过 `while` 循环来实现一个嵌套循环,用于模拟每天学习8小时、连续学习7天的情况。下面是一个完整的代码示例,说明如何使用 `while` 循环实现该场景:
day = 1

while day <= 7:
    hour = 1
    while hour <= 8:
        print(f"这是第{day}天,第{hour}小时的学习。")
        hour += 1
    day += 1

print("7天的学习计划完成!")

具体解释:
- 外层的 `while day <= 7` 表示重复操作7次,每次表示一天。
- 内层的 `while hour <= 8` 表示每天学习8小时。
- 每次内层循环结束(即8小时学习完成),`day` 会递增1,以进行下一天的学习。这样可以实现7天的学习计划。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-11-16 12:00:13 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2024-11-16 12:07 编辑
day = 1
hour = 1             # 内循环变量不可以在外循环外初始化,应该在外循环内,内循环开始前进行初始化
while day<= 7:
    while hour <= 8:
        在 day = 1 时,内循环结束时,hour = 9,从 day = 2 起,由于 hour 的值一直是 9,因而无法进入内循环,使内循环失效,得这样改:
day = 1
while day<= 7:
    hour = 1         # 内循环变量应该在这里初始化
    while hour <= 8:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-16 12:10:51 | 显示全部楼层
jackz007 发表于 2024-11-16 12:00
在 day = 1 时,内循环结束时,hour = 9,从 day = 2 起,由于 hour 的值一直是 9,因而无法进入 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-31 01:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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