我刚读Eloquent JS并决定做一些练习。
基本上,我正在尝试创建一个程序,在不使用%
的情况下检查偶数。偶数打印true
和奇数打印false
。
function isEven(n) {
if (n < 0)
n = -n;
if (n == 2)
return true;
if (n == 1)
return false;
if (n > 2)
isEven(n - 2);
}
然而:
console.log(isEven(50));
// → undefined
console.log(isEven(75));
// → undefined
console.log(isEven(-1));
// → false
我尝试在函数中console.log
滑倒,但我找不到问题:/
function isEven(n) {
document.write(n + "<br>");
if (n < 0)
n = -n;
if (n == 2)
return true;
if (n == 1)
return false;
if (n > 2)
isEven(n - 2);
}
document.write(isEven(50) + "<br>");
// → true
document.write(isEven(75) + "<br>");
// → false
document.write(isEven(-1) + "<br>");
// → ??
答案 0 :(得分:4)
您忘记返回上一个isEven(n - 2);
。
function isEven(n) {
if (n < 0)
n = -n;
if (n == 2)
return true;
if (n == 1)
return false;
if (n > 2)
return isEven(n - 2);
}
答案 1 :(得分:0)
你忘记了回归
function isEven(n) {
if (n < 0)
n = -n;
if (n == 2)
return true;
if (n == 1)
return false;
if (n > 2)
return isEven(n - 2); // <-----------
}