为什么if语句在条件失败后继续/在满足条件后继续?

时间:2017-09-05 01:02:09

标签: python python-3.x

i = 1
for k in (range(1, 21)):
  if i % k > 0:
    for j in range(1, 21):
      if (i*j) % k == 0:
        i *= j
        break

print (i)

输出:232792560

编写此代码是为了找到可被1到20之间的所有数字整除的最小倍数。

我的问题是为什么"if i % k > 0" 1 % 1 == 0?(第3行)

时会继续"if (i*j) % k == 0"

为什么它会在NSViewController之后继续(第5行),一旦j和k为2而不是破坏?

2 个答案:

答案 0 :(得分:2)

1)第一个if不会继续,但循环会继续。

2)break仅发生在内循环中,而不是整个执行

You can visualize the execution steps, if you wish

答案 1 :(得分:1)

break语句只会突破内部循环。要打破两者,这是我想你想做的,你需要一个布尔条件。

您可以在break语句之前立即将变量设置为“True”,并在内部循环之外检查条件以查看它是否为真。如果是,则会满足break语句,因此您可以使用另一个break语句退出外循环。