为什么"while"的工作与"for"的工作方式不同

Dan*_*iel -1 python loops while-loop

如果我尝试代码:

for i in range(10):
    if i < 5:
        continue
    print(i)
Run Code Online (Sandbox Code Playgroud)

它将打印数字6-10.但代码:

for i in range(10):
    while i < 5:
        continue
    print(i)
Run Code Online (Sandbox Code Playgroud)

永远不会终止.似乎while循环不会增加i.我在这里错过了什么?

Wil*_*sem 5

while环是一个码结构的情况.只要条件满足,它就会保持循环.此外,while循环不会执行任何其他操作(这与for将下一项读入变量的循环相反).

此外,while循环是一个循环.该continue语句与最接近的循环绑定.因此,在您的第二个代码语句中,continue将让代码在循环上执行新的迭代while.

由于你的while循环没有改变i,并且continuewhile循环(而不是for循环)执行新的循环,因此它将继续执行while循环.

话虽如此,两个代码片段都不优雅.你可以简单地用一个range(..)语句有两个参数陈述启动值:

for i in range(6, 10):
    print(i)
Run Code Online (Sandbox Code Playgroud)