0
点赞
收藏
分享

微信扫一扫

Java递归的认识

一、前言

我们在日常开发中可能会遇到自己调用自己的情况,就是自身包含了自己。一个方法在执行过程中调用自身,就称为递归。递归相当于数学上的数学归纳法,有一个起始条件,然后有一个递推公式。

二、递归示例

错误示例:

package day07;

/**
 * @author qx
 * @date 2024/3/6
 * @des
 */
public class Demo {
    public static void main(String[] args) {
        show();
    }

    public static void show() {
        // 调用自身
        show();
    }
}

执行程序:

Java递归的认识_递归

这样使用递归会抛出一个栈溢出错误的异常,说明我们使用递归还需要有一个结束的条件,不然递归就会一直执行下去,抛出栈溢出的异常。

递归求 N 的阶乘:

package day07;

/**
 * @author qx
 * @date 2024/3/6
 * @des
 */
public class Demo {
    public static void main(String[] args) {
        int factor = factor(5);
        // 5*4*3*2*1
        System.out.println(factor);
    }

    public static int factor(int n) {
        // 结束条件
        if (n == 1) {
            return 1;
        }
        return n * factor(n - 1);
    }
}

执行结果:

Java递归的认识_执行过程_02

 递归执行过程分析:

要想理解清楚递归, 必须先理解清楚 “方法的执行过程”, 尤其是 "方法执行结束之后, 回到调用位置继续往下执行,并在特定的位置有一个退出的条件。

举报

相关推荐

0 条评论