Continue语句有什么作用?

时间:2018-11-08 16:00:32

标签: python python-3.x

有人可以解释为什么这会导致无限循环吗,即使继续阅读我一直在读的内容也应该“跳过”迭代

x = 0
while x < 50:

    if x == 33:
       print("I hit 33")
       continue
    else:
       pass
    print(x)
    x+=1

5 个答案:

答案 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

在这种情况下,您实际上不需要continuepasscontinue继续进行最近的封闭循环的下一个循环。 pass通常仅在块需要一条语句但您还没有准备好使用该语句时用作占位符。