gpt4 book ai didi

javascript - 这段代码如何不返回未定义,请解释函数中的最后一个 else

转载 作者:行者123 更新时间:2023-12-03 03:07:51 24 4
gpt4 key购买 nike

我不明白当一个非 0 的数字等于 0 时,此代码如何不返回 undefined 并返回 true 作为偶数,我尤其不这样做了解函数中最后一个 else 语句

function isEven(n) {
if (n == 0)
return true;
else if (n == 1)
return false;
else if (n < 0)
return isEven(-n);
else
return isEven(n - 2);
}


console.log(isEven(50));
// → true
console.log(isEven(75));
// → false
console.log(isEven(-1));
// → false

最佳答案

最后一个else block 的主体正在实现递归

对于任何整数n,我们知道这些规则:

  1. 如果 n 为 0,则 n 为偶数。
  2. 如果n为1,n不是偶数。
  3. 如果n为负数,则n为偶数当且仅当-n为偶数。
  4. 否则,n 为偶数当且仅当 (n-2) 为偶数。

例如,检查 -4 是否为偶数:

  • -4 小于 0,因此 -4 是偶数,即使 +4 是偶数(规则 #3)。
  • 4 既不是 0 也不是 1,因此 4 是偶数,如果 (4-2) 或 2 是偶数(规则 #4)
  • 2 既不是 0 也不是 1,因此如果 (2-2) 或 0 是偶数,则 2 是偶数(规则 #4)。
  • 0 是偶数(规则 #1),因此 6 也是偶数。

因此,isEven() 函数通过逐步减少问题来确定整数是否为偶数:

  • isEven(-4) 是第三种情况,因此 isEven(-4) 的答案与 isEven(4) 相同。
  • isEven(4) 与前三种情况都不匹配,因此它必须具有与 isEven(2) 相同的答案。
  • isEven(4) 与前三种情况都不匹配,因此它必须具有与 isEven(0) 相同的答案。
  • isEven(0) 与第一种情况匹配,因此返回 true。

关于javascript - 这段代码如何不返回未定义,请解释函数中的最后一个 else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47088043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com