有人可以解释为什么这会导致无限循环吗,即使继续阅读我一直在读的内容也应该“跳过”迭代
x = 0
while x < 50:
if x == 33:
print("I hit 33")
continue
else:
pass
print(x)
x+=1
答案 0 :(得分:3)
continue
命令在该条件下重新启动最内部的循环。
这意味着x
到达33
之后,x += 1
将永远不会执行,因为您将击中continue
并返回while
行而不运行代码块的其余部分。
x
将永远是33
,因此您将遇到无限循环。
答案 1 :(得分:2)
当您调用while
时,将跳过continue
循环结束时发生的增量。如果您想保留continue
语句,则以下内容将自动增加:
for x in range(50):
if x == 33:
print("I hit 33")
continue
else:
print(x)
否则,请删除continue
。
答案 2 :(得分:1)
我认为您对break and continue感到困惑。
continue
将跳到最内层循环的下一个迭代break
将离开最内层循环答案 3 :(得分:1)
continue
进入下一个迭代。您希望break
退出循环。参见:
for i in range(10):
if i == 5:
continue
if i == 8:
break
print(i)
输出:
0
1
2
3
4
6
7
答案 4 :(得分:-1)
我猜您要获取的代码如下,它将打印出0到50(不包括)之间的每个整数,除了它将为整数33打印“我命中33”。>
x = 0
while x < 50:
if x == 33:
print("I hit 33")
else:
print(x)
x += 1
在这种情况下,您实际上不需要continue
或pass
。 continue
继续进行最近的封闭循环的下一个循环。 pass
通常仅在块需要一条语句但您还没有准备好使用该语句时用作占位符。