【发布时间】:2019-03-13 21:31:29
【问题描述】:
第一个函数
function isPrime(num) {
if(num < 2) return false;
for (var i = 2; i < num; i++) {
if(num%i==0){
return false;
}else{
return true;
}
}
}
第二个功能
function isPrime(num) {
if(num < 2) return false;
for (var i = 2; i < num; i++) {
if(num%i==0)
return false;
}
return true;
}
我真的无法将我的想法包裹在这段代码上..
【问题讨论】:
-
在第一种情况下,你的循环只会运行它的第一次迭代并返回 false 或 true,也就是说它不会工作。在第二种情况下,它将遍历所有值并检查它是否可被从 2 到
n的每个i整除,如果没有则返回true,这就是你计算的方式是一个数是素数(这个算法虽然不是很有效)。 -
第一个函数将始终在第一次迭代中退出,因为
return false或return true被执行。只有当num%i==0为真时,第二个才会从循环中返回。 -
这里是一个更简单的例子:
function one() { if (false) { return false; } else { return true; } console.log('end'); }和function two() { if (false) { return false; } console.log('end'); return true; }。这基本上是您的示例,但没有循环。注意one不记录“结束”,而two记录。
标签: javascript for-loop