为了账号安全,请及时绑定邮箱和手机立即绑定

js中,在写getNextElement()函数时,递归时为什么中间那个return要存在,请看下面的代码

js中,在写getNextElement()函数时,递归时为什么中间那个return要存在,请看下面的代码

慕妹6594235 2016-04-01 22:43:29
直接getNextElement(node.nextSibling),前面不加return为什么不行?能否解释详细一些,多谢啦。
查看完整描述

2 回答

?
安静_天空

TA贡献11条经验 获得超3个赞

你可以理解为递归就是不断调用自身方法直到条件不被满足,然后退出该方法。满足两点:

2个条件:

    1)有反复执行的过程(调用自身)

    2)有跳出反复执行过程的条件(递归出口)

就拿你的例子来说,当参数Node传递给本方法后,当满足第二个if(判断)条件时,返回的是:开始调用自身进行下一次判断。举个例子,求n!(求某一个数的阶乘,假设n为100):

double fun(int n)   
{

//出口

if(n==0||n==1)    
return 1;
else

//反复执行的过程
return n*fun(n-1);// 100*99(第二次调用fun(100-1))*98(第三次调用fun(99-1))*97(第四次调用fun(98-1))*.....*1(返回的                              //    结果就是1了)* 0返回的结果(同1一样的结果)。最后输出的就是100*99*...*1
}

查看完整回答
反对 回复 2016-04-03
  • 慕妹6594235
    慕妹6594235
    感谢回答。但我还想问:如果return去掉,是否也可以反复执行下面的判断呢。我举得那个例子中,若不加中间的那个return,仍然可以反复执行getNextElement(node.nextSibling)吧,最后的出口是最上面的那个return。那么你所说的: 1)有反复执行的过程(调用自身) 2)有跳出反复执行过程的条件(递归出口) 它也都满足吧。 不好意思我还是不能理解,能否在解释下,谢谢~
?
qq_星空物语_3

TA贡献4条经验 获得超0个赞

如果满足条件,要不要返回一个值为外面所用

查看完整回答
反对 回复 2016-04-02
  • 2 回答
  • 0 关注
  • 1337 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信