【发布时间】:2016-11-15 08:07:21
【问题描述】:
对于分配,我应该编写一个递归函数,使用 N-2 检查任何整数的偶数或奇数。如果甚至返回真,否则返回假。但只要值大到可以调用自身,它就会返回 undefined。请帮忙!
function isEven(num) {
console.log("top of function num = " + num);// For Debugging
if (num == 0){
return true;
}
else if (num == 1){
return false;
}
else {
num -= 2;
console.log("num = " + num);
isEven(num);
}
}
console.log(isEven(0));
// → true
console.log(isEven(1));
// → false
console.log(isEven(8));
// → ??
控制台日志结果:
top of function num = 0
true
top of function num = 1
false
top of function num = 8
num = 6
top of function num = 6
num = 4
top of function num = 4
num = 2
top of function num = 2
num = 0
top of function num = 0
undefined
【问题讨论】:
-
else中的isEven永远不会返回值。 -
else确实需要返回值!
-
太好了,作业教你错误地使用递归函数。改用模数。
-
@Xorifelse 重点是让编写递归函数变得舒服,而不是编写一个数字是否为偶数的有效测试。
标签: javascript recursion