【发布时间】:2016-02-13 08:16:45
【问题描述】:
我有一个我认为是快速的问题。为什么我需要最后一个 return 语句?递归背后的想法不是我重复调用一个函数直到我得到我想要的答案,然后我返回一个值吗?
// Your code here. this does work
function isEven(num) {
if (num == 0) return true;
else if (num == 1) return false;
else return isEven(num - 2);
}
// Your code here. This does not work
function isEven(num) {
if (num == 0) return true;
else if (num == 1) return false;
else isEven(num - 2);
}
【问题讨论】:
-
每个调用都必须有一个 return 语句才能返回 undefined 以外的内容,否则返回 undefined。
-
在第二个版本中,如果您调用
isEven(2),您的函数将返回nothing(嗯,undefined)。当然,它会递归调用自己,那些调用会返回值,但它们会被丢弃。 -
检查一个数字
n是奇数还是偶数O(n)的函数很有趣:)
标签: javascript recursion return