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

學無先后,達者為師

網站首頁 編程語言 正文

使用遞歸時返回結果是undefined的原因和解決辦法

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

今天在寫一個算法題時使用了遞歸,但是在打印函數調用結果時一直都是undefined,檢查各地方都沒有發現問題,最后通過查閱相關資料,發現了問題所在

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

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

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

這樣的打印結果就是正常的

原因:我們在遞歸入口處調用函數時,如果不使用return,那遞歸內部函數的值會一直卡在遞歸入口函數調用這里永遠無法返回到外層去。

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

欄目分類
最近更新