[技术存档] 笔记 递归调用

发布于 2021-04-15  36 次阅读


递归调用是一种方法的执行的特殊形式,指的是一个方法自己调用自己的一个操作

那么 在我们进行方法递归调用的过程之中一般我们需要两种操作

》需要设置递归操作的结束条件

》每一次执行都要去修改我们的递归数据,

实例:

public class test {

    public static void main(String[] args) {//主方法
        System.out.println(sum(100));
    }//num描述的是累加的最大值
    public static int sum(int num){
        if (num==1){//结束条件
            return 1;

        }
        return num+sum(num-1);
    }
}

以上利用递归的形式实现了数据的累加操作,但是实际上这种操作的形式可以采用如下步骤分解

》第一次调用 (main()):return100+sum(99);

》第二次调用 (sum()):return100+sum(98);

………

》倒数第二次调用:(sum()):return2+sum(1)

》最后一次调用 :(sum()):return1

实际上最终结果就是:return100+98+97+96…+3+2+1;

实际的项目开发过程中,一般不建议开发者编写递归调用

如果递归处理不当 有可能发生栈溢出问题/


终于 公交司机在大家的责骂下给那位老奶奶让出了位置......