LEEFEI571 发表于 2024-11-10 11:53:26

while循环语句嵌套时的困惑

我在学习while循环语句嵌套时写了以下程序:
day = 1
hour = 1
while day <= 7:
    while hour <= 8:
      print("今天,我一定要坚持学习8个小时!")
      hour += 1
day += 1

但在执行时"今天,我一定要坚持学习8个小时!"被打印了8次,为何不是56次?
我的理解是当外层循环语句day为1时,内层循环语句从1执行到8,也就是里面的打印语句("今天,我一定要坚持学习8个小时!"会被执行8次.当内部循环语句>8时就会跳出到外部循环语句, 外层循环语句day由2开始执行,里面的内层循环语句又会从1到8执行,以此类推.7day * 8 hour总共56次.请问大神我的理解哪里出错了吗?

FishC 发表于 2024-11-10 11:53:33

你好!看起来你的代码片段没写完,不过不用担心,我可以帮你理解while循环的嵌套用法。

首先,让我们理解while循环的基本结构:
while 条件:
    # 执行的代码
只要条件为True,while循环中的代码就会被反复执行。

在使用嵌套while循环时,就是在一个while循环内再写一个while循环。例如:
day = 1

while day <= 2:# 外层循环
    hour = 1
    while hour <= 3:# 内层循环
      print(f"Day {day}, Hour {hour}")
      hour += 1
    day += 1
在这个例子中,外层循环控制天(`day`),内层循环控制小时(`hour`)。内层循环会在每次外层循环的每一次迭代中完成其所有的迭代次数。输出结果为:
Day 1, Hour 1
Day 1, Hour 2
Day 1, Hour 3
Day 2, Hour 1
Day 2, Hour 2
Day 2, Hour 3
这就表示每一天有三个小时的循环。

希望这能够帮你理解while循环嵌套的概念!如果你有进一步的问题或具体的代码想要讨论,请继续补充。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

jackz007 发表于 2024-11-10 12:00:01

本帖最后由 jackz007 于 2024-11-10 14:01 编辑

day = 1
hour = 1                     # 这个部位只适合初始化外循环变量,不适合初始化内循环变量
while day <= 7:
                           # 这个部位适合初始化内循环变量
    while hour <= 8:
       这样改就对了:
day = 1
while day <= 7:
    hour = 1               # 内循环的变量必须在内循环开始前进行初始化。只有这样,才能保证每一次的外循环都能进入内循环执行。
    while hour <= 8:
页: [1]
查看完整版本: while循环语句嵌套时的困惑