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

在这个 highly upvoted answer 中, continue 用于 while 循环内以指示执行应该继续(显然)。 definition 还提到了它在 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

我错过了什么?

最佳答案

这是一个非常简单的例子,其中 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 时,它​​会跳过 while 套件的其余部分并从顶部重新开始。

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

尽管如此,我只想说超过 90%1 的循环不需要 continue 语句。

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

关于python - Python while 循环中是否需要 continue 语句?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38513718/

10-12 21:00