函数递归调用

递归是一种编程技术,通过在函数内部调用自身来解决复杂问题。本文介绍了递归的基本定义,展示了如何使用递归计算阶乘,并给出了一个递归实现的示例。同时,强调了递归使用时必须设置边界条件以防止无限递归导致栈内存溢出。注意,无止境的递归调用将消耗大量内存并可能导致程序崩溃。
摘要由CSDN通过智能技术生成

什么是递归

        定义:定义方法时,在方法内部调用方法本身,称为递归;

public void show(){
    System.out.println("递归函数");
    show();  //调用自身
}

作用

        通常把一个大型复杂问题层层转化位一个与原问题相似规模小的问题来求解

举例

        求n的阶乘

public class Demo {
    public static int factoral(Integer a) {
        if (a == 1) {
            return 1;
        } else {
            return a * factoral(a - 1); //递归调用函数本身 进而求出阶乘
        }
    }

    public static void main(String[] args) {
        System.out.println( Demo.factoral(4));
    }
}

注意事项

        在递归调用中不能无限的调用自己,必须要有边界条件能使递归结束,因为每一次递归调用都会在栈内存中开辟新的空间,重新执行方法,如果递归太深,非常容易造成栈内存溢出;

public class Demo2 {
    public static void s(){
        System.out.println("1");
        s();  //死循环出不去了 且会造成栈内存溢出
    }
    public static void main(String[] args) {
        Demo2.s();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值