2017-09-05 119 views
-1
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为什么if语句在条件失败时继续/在条件满足后继续?

这段代码被写入找到1之间所有数字的最小倍数可分到20

我的问题是为何"if i % k > 0"继续当1 % 1 == 0?(3号线)

以及为什么它在"if (i*j) % k == 0"(第5行)之后继续j和k是2而不是中断?

+1

不知道该程序应该如何工作,但'break'只打破了''for'循环。对于“完全中断”,你可以在函数内使用'return'语句。 – Julien

回答

1

break语句只会跳出内部循环。为了突破两者,这是我假设你想要做的,你将需要一个布尔条件。

您可以在break语句之前和内部循环之外立即将变量设置为'True',以检查条件是否为真。如果是,那么break语句将会被满足,所以你可以使用另一个break语句来退出外层循环。

相关问题