帅雷必成c王 发表于 2020-9-14 23:42:01

看不懂while嵌套

day = 1
hour = 1
while day <= 7:
    while hour <= 8:
      print("今天我一定要坚持学习8个小时")
      hour += 1
      if hour >1:
            break
    day += 1
这上面有两个while ,当内循环得到break出现不是就是结束内循环了吗,为什么内循环还在执行,这不是countine吗

帅雷必成c王 发表于 2020-9-14 23:42:50

而且为啥还会出现七次,1加到7不是就6次吗

hellokz 发表于 2020-9-15 01:31:47

本帖最后由 hellokz 于 2020-9-15 01:33 编辑

我也是个纯新手,不知道我的回答对不对啊,主要是别耽误你{:10_266:}
0、你break只停了内循环,外循环还在起做用,如果你想做到hour>1都停的话要在break下面对应外循环的再加一个break.

day = 1
hour = 1

while day <=7:
    while hour <= 8:
      print("今天我一定要坚持学习8个小时")
      hour += 1      
      if hour > 1:
            break

    break
    day += 1

1、你写了day <= 7,你加了=所以包含7次。

以上回答仅供参考。。。

justjust001 发表于 2020-9-15 06:36:49

就是打印7个print里的内容:
1. 内循环每次只会执行一次,所以等于print(xxxxxx)。
2. 外循环从1到7,总共7个数,7次循环,所以循环了7次内循环的内容,但是内循环等于print(xxxxxx),所以就打印了7次内容。
从1加到7是6个数,但是初始值1也是成立的,1也要算到次数里。

heidern0612 发表于 2020-9-15 07:30:28

1、内循环是break掉了。

2、1到7总共7个数,1也算在内,算的是数量,而不是减法。

阿铠 发表于 2020-9-15 09:05:30

本帖最后由 阿铠 于 2020-9-15 09:15 编辑

实际测试了一下:当运行 break 的时候,内循环是终止了,接下来执行了 day += 1 ,重新开始了外循环

sunrise085 发表于 2020-9-15 10:20:10

帅雷必成c王 发表于 2020-9-14 23:42
而且为啥还会出现七次,1加到7不是就6次吗

你的外层循环条件是day<=7也就是说当day=8的时候才会结束循环,当day为7的时候依然会循环,所以应该是1加到8一共7次

内层循环每次都已遇到break跳出内层循环,而每次网层循环都会再次执行内层循环,所以内层循环和外层循环一样执行了7次
页: [1]
查看完整版本: 看不懂while嵌套