Python 为什么';继续';和';中断';给出相同的结果?
在我的代码中,关键字“continue”和“break”给出相同的输出。原因是什么Python 为什么';继续';和';中断';给出相同的结果?,python,continue,Python,Continue,在我的代码中,关键字“continue”和“break”给出相同的输出。原因是什么 x = 0 while x < 5: if x == 2: break print(x) x += 1 第一个代码: x = 0 while x < 5: if x == 2: break print(x) x += 1 x=0 当x
x = 0
while x < 5:
if x == 2:
break
print(x)
x += 1
第一个代码:
x = 0
while x < 5:
if x == 2:
break
print(x)
x += 1
x=0
当x<5时:
如果x==2:
打破
打印(x)
x+=1
输出:
0
一,
x = 0
while x < 5:
if x == 2:
break
print(x)
x += 1
第二个代码:
x = 0
while x < 5:
if x == 2:
break
print(x)
x += 1
x = 0
while x < 5:
if x == 2:
continue
print(x)
x += 1
x=0
当x<5时:
如果x==2:
持续
打印(x)
x+=1
输出:
0
一,
x = 0
while x < 5:
if x == 2:
break
print(x)
x += 1
在第1个代码中,我期望得到相同的输出。在第二个例子中,我希望输出是这样的:
输出:
0
1.
3.
4python中的
continue
关键字告诉程序跳过循环的其余内容并跳到下一个迭代
x = 0
while x < 5:
if x == 2:
break
print(x)
x += 1
在第二段代码中,您将注意到程序从未停止执行。这是因为一旦
x==2
为True
,程序将点击continue
,然后跳转到下一个迭代……在那里它再次检查x
是否等于2,并点击continue
。这是一个无限循环 break
立即退出循环,continue
停止当前迭代以直接开始下一个迭代(它不会退出循环)。第二个代码示例永远不会终止,因为continue
重新启动while循环而不增加x
continue
停止循环的当前迭代,并立即转到循环的下一个迭代,跳过循环体的其余部分
x = 0
while x < 5:
if x == 2:
break
print(x)
x += 1
在while
循环中,正文的其余部分包括语句x+=1
。因此,x
永远不会变成3
,而是停留在2
。从那时起,如果x==2:测试总是成功的,并且它一直跳过增量,并且反复重复这个循环
x = 0
while x < 5:
if x == 2:
break
print(x)
x += 1
在for
循环中,它跳过循环体的其余部分,然后从循环的迭代器中获取下一项。如果将循环更改为:
x = 0
while x < 5:
if x == 2:
break
print(x)
x += 1
for x in range(5):
if x == 2:
continue
print(x)
您将获得预期的输出。递增
x
不是在循环体中完成的,而是由for
语句本身完成的。它会在每次迭代开始时自动发生。所以continue
只跳过print
语句。我建议看一下continue的功能,因为我认为它的功能与您认为的不同。@brunns:您是对的,第二个不会终止,但如果您在解释器中运行此代码,您将看到0,1,然后只是一个闪烁的光标:)您能解释一下for循环中的“continue”关键字吗?我想我还不了解它在for循环中的作用。我添加了一个解释,说明了for
与while
的不同之处。这是一个很好的解释!我现在明白了其中的区别。我需要意识到增量是由为
本身完成的,而不是while
。谢谢
x = 0
while x < 5:
if x == 2:
break
print(x)
x += 1