日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語言 正文

使用遞歸時(shí)返回結(jié)果是undefined的原因和解決辦法

作者:coderxian 更新時(shí)間: 2021-12-17 編程語言

今天在寫一個(gè)算法題時(shí)使用了遞歸,但是在打印函數(shù)調(diào)用結(jié)果時(shí)一直都是undefined,檢查各地方都沒有發(fā)現(xiàn)問題,最后通過查閱相關(guān)資料,發(fā)現(xiàn)了問題所在

function fn(n) {
    n = n + 1;
    if (n > 10) {
        return n;
    }
    // 入口
    fn(n);
}
console.log(fn(0));

以上代碼的打印結(jié)果是undefined,這令我感到很疑惑,后來查閱相關(guān)資料,發(fā)現(xiàn)在遞歸入口處,也是需要加上return的

function fn(n) {
    n = n + 1;
    if (n > 10) {
        return n;
    }
    // 入口
    return fn(n);
}
console.log(fn(0)); // 11

這樣的打印結(jié)果就是正常的

原因:我們?cè)谶f歸入口處調(diào)用函數(shù)時(shí),如果不使用return,那遞歸內(nèi)部函數(shù)的值會(huì)一直卡在遞歸入口函數(shù)調(diào)用這里永遠(yuǎn)無法返回到外層去。

原文鏈接:https://blog.csdn.net/IOT123/article/details/122101440

欄目分類
最近更新