JavaScript for 循环返回未定义
JavaScript for loop returning undefined
为什么我在下面的函数中得到 isPrime(2) 未定义?
就好像 var result;
之后的整个 if 语句被 isPrime(2) 而不是其他输入跳过了。我不明白为什么会这样。
function isPrime(num) {
if (typeof num !== "number") {
throw "The input needs to be a number!";
}
var result;
if (num <= 1) {
result = false;
} else {
for (i = 2; i < num; i++) {
if (num % i === 0) {
result = false;
break;
} else {
result = true;
}
}
}
return result;
}
如果num为2那么这部分代码将不会被执行
for (i = 2; i < num; i++) {
if (num % i === 0) {
result = false;
break;
} else {
result = true;
}
}
因为 i 最初是 2 而 num 是 2,所以 2 < 2 是错误的。
为什么我在下面的函数中得到 isPrime(2) 未定义?
就好像 var result;
之后的整个 if 语句被 isPrime(2) 而不是其他输入跳过了。我不明白为什么会这样。
function isPrime(num) {
if (typeof num !== "number") {
throw "The input needs to be a number!";
}
var result;
if (num <= 1) {
result = false;
} else {
for (i = 2; i < num; i++) {
if (num % i === 0) {
result = false;
break;
} else {
result = true;
}
}
}
return result;
}
如果num为2那么这部分代码将不会被执行
for (i = 2; i < num; i++) {
if (num % i === 0) {
result = false;
break;
} else {
result = true;
}
}
因为 i 最初是 2 而 num 是 2,所以 2 < 2 是错误的。