我对在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
我错过了什么?
答案 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