先解释一下递归方法:一个方法体内调用它自身

  • 方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无需循环控制。
  • 递归一定要向已知方向递归,否则这种递归就变成了无穷递归,即死循环。

所以,根据以上定义,我们可以总结出三大要素

1.方法的功能

对于递归,最重要的就是知道你实现的这个方法的功能是什么。例如:

// 计算n的阶乘
public int getSum(int n){

}

2. 递归的结束条件

所谓递归,就是在方法内部调用这个方法本身。所以,我们必须要设置递归的结束条件,否则它会一直调用自己,导致栈溢出,也就是死循环。例如:

//计算n的阶乘
public int getSum(int n){
    if(n == 1){
        return 1;
    }
}

3. 等价关系式

最后,我们要做的就是不断缩小参数范围,通过调用本身的方法,给上一级返回值,不断调用返回调用返回直到终止条件

//计算n的阶乘
public int getSum(int n){
    if(n == 1){
        return 1;
    }else{
        return getSum(n - 1) * n;
    }
}

说简单点就是在不断的调用返回调用返回直到终止条件,就比如我们计算4的阶乘

最后修改:2022 年 01 月 18 日
如果觉得我的文章对你有用,请随意赞赏