,可以可视化执行步骤
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"
(第5行)J和K是2而不是断裂之后继续?
1)第一个if
不继续,但循环确实如此。
2)break
仅发生在内部循环中,而不是整个执行
如果您希望
中断语句只会突破内部循环。要脱离这两者,这就是我想您想做的,您将需要一个布尔条件。
您可以在中断语句和内部循环外部之前立即将变量设置为" true",以检查条件是否为真。如果是这样,则可以满足中断语句,因此您可以使用另一个突破性语句退出外循环。