function isEven(n) {
if (n == 0) return true;
else if (n == 1) return false;
isEven(n - 2);
}
这样写的话不会有返回值,得到的结果永远是 undefined ,在 isEven(n-2)前面加个 return 就可以 work 了。
我的问题是,为什么需要加 return 呢? 如果结果是 0 或者 1 ,不就 return true 或者 false 跳出了吗? 还望指点~感谢!
1
xuxu 2015-11-30 09:52:25 +08:00 1
你这不叫递归 你这只能算调用了 2 次 isEven
|
2
cxe2v 2015-11-30 09:57:34 +08:00 1
你不 return ,这个方法就是空返回值, undefined
|
3
haiyang416 2015-11-30 09:57:43 +08:00 via Android
你这函数只有 0 和 1 有返回值,其他的当然是 undefined
|
4
xdazz 2015-11-30 10:03:17 +08:00 1
当前函数的返回值和当前函数内使用的函数的返回值是一回事吗?
function foo() { return true;} function bar() { foo() }; 你能说 bar 就该返回 true 吗? |