不是这样的
跳过
价值
5
它掉进了
infinite loop
在值5处。
这个
continue
语句重新启动循环,但因为从未更改
x
在执行此操作之前,在随后通过循环时,
x == 5
条件继续得到满足,同样的行为被重复
无限大
.
你看不到这一点,因为你在Jupyter运行,在那里程序没有返回并不明显。如果在python shell上运行,或者编写一个脚本并使用python解释器执行它,那么它将永远旋转,将CPU固定在100%,并且永远不会返回接受进一步的输入。
分辨率
有多种方法可以解决这个问题。
(推荐)使用
for
环
一
对于
循环迭代一组值(可能是ITerable或值
yield
直到没有剩余值。相比之下,A
while
循环将永远运行,直到其条件为假。
如果要迭代的项目数量已知且有限,那么通常使用这样的循环更为惯用,如示例中所示。
range(x, y)
是获取间隔中整数的简单机制
[x, y)
.
for x in range(0, 7):
if x == 5:
continue
print(f'value of {x}')
使用
虽然
循环(此处包含其指导性质):
增量
X
每次循环传球
增加的值
X
每次通过循环时
x = -1
while x < 7:
x += 1
if x == 5:
continue
print(f'value of {x}')
重构逻辑以在
print
呼叫
x = 0
while x < 7:
if x != 5:
print(f'value of {x}')
x += 1