零基础学Java—递归(五十一)

Posted 王同学要努力

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础学Java—递归(五十一)相关的知识,希望对你有一定的参考价值。

【零基础学Java】—递归(五十一)

一、递归

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

🔵递归的分类:

  • 直接递归:方法自身调用自己
  • 间接递归:间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法

🔵🔵注意事项:

  • 递归一定要有条件限制,保证递归能够停止下来,否则会发生栈内存溢出
  • 在递归中能够虽然有限定条件,但是递归的次数不能太多,否则也会发生栈内存溢出
  • 构造方法 禁止递归

🔵🔵🔵递归的使用前提:当调用方法的时候,方法的主体不变,每次调用方法的参数不同,可以使用递归

二、练习

/*
 定义一个方法 使用递归计算1-n之间的和
 n+(n-1)+(n-3)+……+1
 使用递归必须明确的条件:
 递归结束的条件:获取到1的时候结束
 递归的目的:获取下一个被加的数字(n-1)

  */
public class demoPra 
    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);
    


三、使用递归求阶乘

public class demoRecurison 
    public static void main(String[] args) 
        int jie=jc(5);
        System.out.println(jie);

    

    public static  int jc(int n)
        if(n==1)
            return 1;
        
        return n*jc(n-1);
    

四、递归打印多级目录


以上是关于零基础学Java—递归(五十一)的主要内容,如果未能解决你的问题,请参考以下文章

零基础学Java—Socket类(五十五)

零基础学Java—TCP通信(五十四)

零基础学Java—Java 日期时间(三十一)

零基础学Java—哈希值(四十一)

《C#零基础入门之百识百例》(五十一)面向对象概述 -- 一维多项式求值

零基础学Java—this关键字的三种用法+Java继承的三个特点(二十一)