为什么继续不工作?

时间:2014-01-02 23:09:07

标签: python

在我找出continue的过程中,我想编写一个包含breakcontinue的简单循环。我理解break结束循环,但我无法弄清楚为什么永远不会触发print('Why won't this ever print!')

In [21]: 
import random

while True:
    n = random.randint(0,5)
    if n == 5:
        print('It is 5!')
        break
    else:
        print('It is not 5!')
        continue
    print('Why won't this ever print!')

Out [21]:
It is not 5!
It is not 5!
It is 5!

非常感谢任何帮助。

7 个答案:

答案 0 :(得分:7)

continue将执行流程返回到循环顶部以进行另一次迭代。它不会继续循环相同的迭代。

如果您要删除 continue语句,那么Python 继续执行下一个语句,并打印'Why won't this ever print!

答案 1 :(得分:5)

break突破了循环。 continue从头开始重新开始而不完成当前迭代。您没有任何可以达到print声明的分支。

答案 2 :(得分:4)

理解continuebreak的最简单方法是以这种方式将其可视化。

enter image description here

  • continue被触发时,它会带你回到循环条件,如果满足条件,它会再次在循环内完成所有操作,如果不满足条件,它将跳过循环。< / LI>
  • 触发break时,会立即将您带出循环。

答案 3 :(得分:2)

continue用于退出循环的当前迭代并进入下一次迭代。因此,如果您打印“继续”,则会跳过print语句。

答案 4 :(得分:1)

continue停止当前循环迭代并启动下一个迭代,因此行不应执行。

答案 5 :(得分:0)

它不会打印,因为它永远不会到达。您之前是breakcontinue

答案 6 :(得分:0)

continue语句之后,程序流程再次从while循环的开头开始。

来自文档:

继承语句,也是从C借来的,继续循环的下一次迭代

参考:

http://docs.python.org/2/tutorial/controlflow.html