break的循环问题
请问:当执行break时,是会跳到位置1还是位置2?按小甲鱼讲的,else不就是循环体外的语句了吗?是不是就应该跳到位置1吗?XXXX
while ...:
break
else:
位置1
位置2
XXXX
请大神不吝赐教!谢谢! 本帖最后由 傻眼貓咪 于 2022-12-25 17:05 编辑
while ... else ... 语句,当 while 不是以 break 形式退出循环时(意思就是完成所有循环),则触发 else 语句。
x = 0
while x < 10:
if x > 20:
break
x += 1
else:
print("执行 else 语句")执行 else 语句 傻眼貓咪 发表于 2022-12-25 16:55
while ... else ... 语句,当 while 不是以 break 形式退出循环时(意思就是完成所有循环),则触发 else...
我个人觉得您写的代码有个悖论。设定x<10,再与20比大小,根本不可能执行x > 20下的break语句,break根本就没起到验证break的作用。
我写了两个验证代码进行对比。
第一段:执行结果:9 位置2
x = 1
while x < 10:
print(x)
x += 1
if x == 9:
break
else:
print(x, "位置1")
print(x, "位置2")
第二段代码:执行结果:10 位置1
x = 1
while x < 10:
print(x)
x += 1
else:
print(x, "位置1")
我觉得这说明:else仍然是循环体的一部分。
请大神不吝赐教! applekiller 发表于 2022-12-25 19:13
我个人觉得您写的代码有个悖论。设定x 20下的break语句,break根本就没起到验证break的作用。
我写了 ...
当然没有人会这样写,只是要让你明白,既然已经明白,就请设最佳解答谢谢。 好家伙,一看帖主就是个理科生 + 强迫症{:10_256:} wyhpylc 发表于 2022-12-25 19:33
好家伙,一看帖主就是个理科生 + 强迫症
哈哈哈 {:10_269:} 本帖最后由 jackz007 于 2022-12-25 19:41 编辑
break 退出的位置在 while 语句块以下(不包括 else)缩进位置与 while 相同的下一条语句。
while :
<语句1>
break
<语句2>
else :
<语句3>
<语句4> # 这是 break 退出循环后,将要执行的第一条语句 jackz007 发表于 2022-12-25 19:37
break 退出的位置在 while 语句块以下(不包括 else)缩进位置与 while 相同的下一条语句。
谢谢楼上,现搞清楚了。谢谢!!!
页:
[1]