欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

JS 学习递归和常见递归算法 - 如何读取递归函数

最编程 2024-06-03 19:56:44
...

乍一看,递归函数并不直观或易于理解。以下步骤将帮助您更快地阅读和理解递归函数:

  • 始终先确定函数的基本情况。
  • 将参数传递给将立即到达基本情况的函数。
  • 确定至少将执行递归函数调用一次的参数。

使用上面的示例尝试读下面的代码randomUntilFive()。

function randomUntilFive(result = 0, count = 0){
    if(result === 5){
        // 触发结束
    }
    // 递归调用函数
}
randomUntilFive();

这意味着可以通过将数字传递给5参数来达到结束。

function randomUntilFive(result = 0, count = 0){
    if(result === 5){
        console.log(`随机结果: ${result}`);
        console.log(`随机执行次数: ${count}`);
        return;
    }
}
randomUntilFive(5);

虽然count参数不应该为零,但将数字5作为参数传递给上面的函数调用可以满足第二步的要求。

最后,需要找到一个至少执行一次递归函数调用的参数。在上述情况下,可以传递任何数字,而不是传递任何数字5:

function randomUntilFive(result = 0, count = 0){
    if(result === 5){
        console.log(`随机结果: ${result}`);
        console.log(`随机执行次数: ${count}`);
        return;
    }
    result = Math.floor(Math.random() * (10 - 1 + 1) + 1);
    count++;
    randomUntilFive(result, count);
}
randomUntilFive(4); 
// 5以外的任何数字
// 执行递归调用

推荐阅读