Java:方法的递归

  • A方法调用B方法,比如main()方法调用另一个方法
  • 递归:A方法调用A方法,就是自己调用自己

递归结构包含两部分:

  • 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
  • 递归体:什么时候需要调用自身方法。

package com.jiemyx.method;

public class Demo06 {
    public static void main(String[] args) {
        Demo06 test = new Demo06();
        test.test();
    }

    //死循环,溢出异常,不这样使用
    public void test(){
        test();
    }
}


package com.jiemyx.method;

public class Demo07 {
    //阶乘
    //2!    2*1
    //3!    3*2*1
    //5!    5*4*3*2*1
    public static void main(String[] args) {
        //f(5) => 5*f(4) => 5*4*f(3) => 5*4*3*f(2) => 5*4*3*2*f(1) => 5*4*3*2*1
        System.out.println(f(5));
    }

    //递归,因为Java使用栈机制,数据较大时需要调用多次方法,不建议使用
    public static int f(int n){
        if (n==1){  //递归头
            return 1;
        }else { //递归体
            return n*f(n-1);
        }
    }
}

posted @ 2021-03-28 22:11  杰myx  阅读(72)  评论(0)    收藏  举报