为什么'继续'和'休息'给出相同的结果? [关闭]

问题描述 投票:-3回答:4

在我的代码中,关键字“continue”和“break”给出相同的输出。是什么原因?

第一个代码:

x = 0
while x < 5:
    if x == 2:
        break
    print(x)
    x += 1

输出:0 1

第二个代码:

x = 0
while x < 5:
    if x == 2:
        continue
    print(x)
    x += 1

输出:0 1

在第一个代码中,我期望相同的输出。在第二个中,我期望输出如下:输出:0 1 3 4

python continue
4个回答
4
投票

continue停止循环的当前迭代并立即进入循环的下一次迭代,跳过循环体的其余部分。

在你的while循环中,身体的其余部分包括声明x += 1。所以x永远不会变成3,它停留在2。从那时起,if x == 2:测试总是成功,并且它不断跳过增量,并且一遍又一遍地重复该循环。

for循环中,它跳过循环体的其余部分,然后从迭代器中获取它循环的下一个项目。如果您将循环更改为:

for x in range(5):
    if x == 2:
        continue
    print(x)

你会得到你期望的输出。增加x不是在循环体中完成的,它是由for语句本身完成的。它会在每次迭代开始时自动发生。所以continue只跳过print声明。


1
投票

python中的continue关键字告诉程序跳过循环的其余内容并跳转到下一次迭代。

在第二个代码中,您会注意到程序永远不会停止执行。那是因为一旦x == 2True,该程序将被击中continue然后跳到下一次迭代...再次检查x再次等于2并且将击中continue。这是一个无限循环。


0
投票

break立即离开循环,continue停止当前迭代直接开始下一次迭代(它不会离开循环)。


0
投票

第二个代码示例将永远不会终止,因为continue重新启动while循环而不增加x

© www.soinside.com 2019 - 2024. All rights reserved.