亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 1413 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號