递归概念&分类&注意事项和练习--使用递归计算1-n之间的和

递归概念&分类&注意事项

递归∶指在当前方法内调用自己的这种现象。

递归的分类:
  递归分为两种,直接递归和间接递归。

  直接递归称为方法自身调用自己

  间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。

注意事项:

  递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。

  在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。

  构造方法,禁止递归

复制代码
public static void main(String[] args) {
        a();
    }
    /*
        递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。
        Exception in thread "main" java.lang.stackOverflowError
     */
    private static void a(){
        System.out.println("a方法!");
        a();
    }

    /*
            在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出
            11157
            Exception in thread "main" java.Lang.stackOverflowError

     */
    private static void b(int i){
        System.out.println(i);
        if (i==10){
            return;
        }
        b(++i);
    }

   /*
     构造方法,禁止递归
        编译错误,构造方法是创建对象使用的,一直递归会导致内存中有无数多个对象,直接编译报错
   */
//    public Recuirson() {
//        Recuirson();
//    }
复制代码

 

练习--使用递归计算1-n之间的和

复制代码
public static void main(String[] args) {
            int s = sum(100);
        System.out.println(s);
    }
    public static int sum(int n){
        //获取到1的时候结束
        if (n==1){
            return 1;
        }
        //获取下一个被加的数字
        return n+sum(n-1);
    }
复制代码

 

posted @   漁夫  阅读(81)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示