如何将递归与余数运算符相关联?



我正在使用 Eloquent JavaScript 来学习 JavaScript。我是初学者,我想了解这个练习是如何工作的,它是关于递归并与余数运算符相关的。我不明白这种比较,我真的很想知道它是如何工作的。

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;

我尝试在日志中测试-2,它打印为true,为什么这样做?

我不太完全理解递归或 JavaScript,如果这个例子像我 5 岁一样向我解释,我希望它。

标记不同的决策:

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

当您调用isEven(-2)时,它会根据// 3调用isEven(2),然后根据// 4调用isEven(0),然后根据// 1返回true

最新更新