我只是在阅读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>");
// → ??

最佳答案

您忘记返回最后一个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);
}

09-25 19:25