python 代码求助 循环嵌套
>>> day = 1>>> while day <= 7:
>>> while hour <= 8:
... print("今天,我一定要坚持学习8个小时!")
... hour += 1
... if hour > 1:
... break
... # 位置1
... day += 1
... # 位置2
问题1: break 语句执行之后,程序跳转到位置 1,如果hour += 1在day = 1之后呢?也是跳转到位置 1吗?
问题2:将while day <= 7改为while day <= 9,结果是不是打印8次? 本帖最后由 lxping 于 2022-12-1 09:24 编辑
1、首先你的hour没有像day一样设置循环初始值
2、break只能跳出当前循环,如果触发 break 语句就是跳转到位置 “day += 1” 处,跟 “hour += 1”没有关系,“hour += 1”只是你内层循环的一个机制,可以使得循环能够在 “ hour > 8:”的情况下正常结束。如果你将“hour += 1”移到 "day=1"处,循环内的hour值将不会改变。
3、打印次数要看你设置的hour初始值,如果hour初始值设置为1之间,将while day <= 7改为while day <= 9,结果是打印8次day, hour = 1, 1
while day <= 9:
while hour <= 8:
print("今天,我一定要坚持学习8个小时!")
hour += 1
if hour > 1:
break
# 位置1
day += 1
# 位置2
今天,我一定要坚持学习8个小时!
今天,我一定要坚持学习8个小时!
今天,我一定要坚持学习8个小时!
今天,我一定要坚持学习8个小时!
今天,我一定要坚持学习8个小时!
今天,我一定要坚持学习8个小时!
今天,我一定要坚持学习8个小时!
今天,我一定要坚持学习8个小时! lxping 发表于 2022-12-1 09:11
1、首先你的hour没有像day一样设置循环初始值
2、break只能跳出当前循环,如果触发 break 语句就是跳转到 ...
1,我试了一下,hour += 1的位置在day = 1下,还是在if hour > 1:上结果都一样,是不是他的位置在哪儿都可以
2,这道题的解析是无论多少层循环嵌套,break 语句和 continue 语句都只能作用于离它最近的那一层,可是离他最近的那一层不是while hour <= 8:这个吗?
3,您说的打印次数要看你设置的hour初始值,我将hour初始值改变结果并不影响最终的结果,所以break 是不是只跟day 的值有关系啊?
谢谢大神回复 成成是我 发表于 2022-12-1 10:32
1,我试了一下,hour += 1的位置在day = 1下,还是在if hour > 1:上结果都一样,是不是他的位置在哪儿都 ...
我不是大神{:10_266:}
1、外层循环结束的条件是day>9,怎么样才能让day>9,就是day += 1使得每一次循环后day的值加1。
2、break 语句和 continue 语句都只能作用于离它最近的那一层,就是while hour <= 8:这个
3、要打印print语句首先需要进入外层循环(满足条件while day <= 9),然后进入内层(满足条件hour <= 8),只要有一个不满足了比如 day>9 或者 hour >8 了都不会打印了
4、break和day值没有任何关系,break中断的是内层循环(就是while hour <= 8:) lxping 发表于 2022-12-1 10:52
我不是大神
1、外层循环结束的条件是day>9,怎么样才能让day>9,就是day += 1使得每一次循 ...
我懂了,感谢感谢{:5_108:}
页:
[1]