java中的递归

一、什么叫 递归

解答:递归就是指在当前的方法内调用自己的现象

二、递归的分类

1.递归分为两种,一种是直接递归一种是间接递归

2.直接递归就是方法自身调用自己

3.间接递归,比如A方法调用B方法,B方法调用C方法,而C方法调用Af方法

三、注意点

1.递归一定要有条件限制,在条件下可以停止下来,否者会发生栈内存的溢出。

2.在递归中虽然有条件的限制,但递归的次数是不能太多,否则也会发生栈内存的溢出的问题

3.构造方法必须静止递归

实例

package com.recursion;

public class recursion {


/*
* 2.在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。
* 否则出现 Exception in thread "main" java.lang.StackOverflowError
* jdk1.8栈中只能装10455 否则溢出
 * */
    public void show( int i){
        System.out.println(i);
        if (i == 10455){
            return;
        }
        show(++i);
    }

    /*
    1.递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出
    * Exception in thread "main" java.lang.StackOverflowError*/
    public void show1(){
        System.out.println("不加条件的溢出");
        show1();
    }
}

测试类

package com.recursion;

public class Textrecursion {

    public static void main(String[] args) {

        recursion r = new recursion();

        r.show(1);
        r.show1();

    }
}

四、递归累加求和

1.计算1到n

分析:sum(和)=sum+(sum-l)  

package com.recursion;

public class RecursionSum {
    public int getsum(int num){
        if (num == 1){
            return 1;
            
        }
        
        System.out.println("打印");
        return num + getsum(num -1);

    }

}

测试

package com.recursion;

public class TextRecurtionSum {
    public static void main(String[] args) {
        RecursionSum rSum = new RecursionSum();
        int num = 3;
        int sum = rSum.getsum(num);
        System.out.println(sum);
    }
}

五、递归数组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值