|
|
发表于 2020-6-20 00:34:41
|
显示全部楼层
本帖最后由 Twilight6 于 2020-6-20 07:22 编辑
这里打印了7次,可以理解为当hour > 1时,内层循环结束,进入day += 1,然后重新进入第一个循环,再进入第二个循环。
但是如果把day += 1缩进到if正下方,是否可以理解为day += 1在内层循环中?但是这样也还是打印了七次。请问是我对循环内的顺序理解有误么?
你语言叙述是正确的,但是你代码改动之后是错误的哈,if 的正下方,应该是指同一缩进下,可你却把 break 放进了 if 的代码块内 而不是正下方了~
这样才算同一缩进哈:
- day = 1
- hour = 1
- while day <= 7:
- while hour <= 8:
- print ("fighting")
- hour += 1
- if hour > 1:
- break
- day += 1
复制代码
但是这样的代码会导致你陷入外部的死循环,因为 hour 初始值为 1 而你内部的循环条件 hour > 1 ,而已已进入内部的 while 就 +1,所以内部的 if 条件始终为 hour > 1 没有成功的执行过一次 day += 1
后来都会因为 内部循环的 if 条件成立 提前退出循环导致 day 之后再也无法相加,所以你应该改成这样:
- day = 1
- hour = 1
- while day <= 7:
- while hour <= 8:
- print ("fighting")
- hour += 1
- day += 1
复制代码
或者这样:
- day = 1
- hour = 1
- while day <= 7:
- while hour <= 8:
- print ("fighting")
- hour += 1
- day += 1
复制代码
即可满足你的题意
|
|