var enteredValue = prompt("enter a number");
enteredValue = enteredValue + 0;
console.log(isPrime(enteredValue));
function isPrime(num) {
for (var i = 2; i < num; i++) {
if (num % i === 0) {
return false;
} else {
return true;
}
}
}
谁能告诉我自己做错了什么?代码总是返回false。
答案 0 :(得分:2)
您需要将true
的返回移出循环,因为您需要在返回true
之前检查所有因素。
var enteredValue = +prompt("enter a number");
console.log(isPrime(enteredValue));
function isPrime(num) {
for (var i = 2; i < num; i++) {
if (num % i === 0) {
return false;
}
}
return true;
}
&#13;
答案 1 :(得分:0)
您的方法应该在for循环之外返回true。在您的示例中,您将通过输入else块来重新调整第一个iteratin。
这将有效:
function isPrime(num) {
for (var i = 2; i < num; i++) {
if (num % i === 0) {
return false; // return if it's not a prime
}
}
return true; // return only if it's a prime number
}
您还可以在this post中查看其他主要解决方案。