检查号码甚至程序的逻辑错误?

时间:2015-11-12 13:38:52

标签: javascript

我刚读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>");
// → ??

2 个答案:

答案 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);    // <-----------
}