Python while循环中是否需要continue语句?

时间:2016-07-21 20:24:34

标签: python

我对在continue循环中使用while语句感到困惑。

在此highly upvoted answer中,在continue循环内使用while表示执行应该继续(显然)。它的definition也提到它在while循环中的使用:

  

continue只能在语法上嵌套在for或while循环中

但是在this (also highly upvoted) question中关于continue的使用,所有示例都是使用for循环给出的。

在我运行的测试中,它似乎也是完全没必要的。这段代码:

while True:
    data = raw_input("Enter string in all caps: ")
    if not data.isupper():
        print("Try again.")
        continue
    else:
        break

和这个一样好用:

while True:
    data = raw_input("Enter string in all caps: ")
    if not data.isupper():
        print("Try again.")
    else:
        break

我错过了什么?

3 个答案:

答案 0 :(得分:4)

这是一个非常简单的例子,continue实际上可以做一些可测量的事情:

animals = ['dog', 'cat', 'pig', 'horse', 'cow']
while animals:
    a = animals.pop()
    if a == 'dog':
        continue
    elif a == 'horse':
        break
    print(a)

您会注意到,如果您执行此操作,则无法看到dog已打印。这是因为当python看到continue时,它会跳过其余的套件并从顶部开始。

您不会看到'horse''cow',因为当看到'horse'时,我们会遇到完全退出while套件的中断。

尽管如此,我只是说超过90% 1 的循环赢得需要continue声明。

1 这是完全猜测,我没有任何真实的数据来支持这种说法:)

答案 1 :(得分:2)

continue只是意味着跳到循环的下一次迭代。这里的行为是相同的,因为在continue语句之后没有进一步发生。

你引用的文档只是说你只能 在循环结构中使用continue - 在外面,它没有意义。

答案 2 :(得分:2)

仅当你想要跳转到循环的下一次迭代而不进行其余循环时,才需要

continue。如果它是要运行的最后一个语句,则无效。

break完全退出循环。

一个例子:

items = [1, 2, 3, 4, 5]
print('before loop')
for item in items:
    if item == 5:
        break
    if item < 3:
        continue
    print(item)

print('after loop')

结果:

before loop
3
4
after loop