Java 递归

302 阅读1分钟

内容

方法自己调用自己

代码上一波

package com.javaSE.secondStage;

public class Recursion {
    public static void main(String[] args) {
        System.out.println(f(6));
    }
    public static int f(int n){
        if (n==1)//递归头。递归结束的地方
            return 1;
        else
            return n*f(n-1);//递归体,使用自身的地方
    }
}

图文并茂解释一波

f(6)
=>6*f(5)
=>6*(5*f(4))
=>6*(5*(4*f(3)))
=>6*(5*(4*(3*f(2))))
=>6*(5*(4*(3*(2*f(1)))))//到f(1)开始归,即有确定的返回值。到f(1)之前都是递。到达f(1)开始归
=>6*(5*(4*(3*(2*1))))
=>6(5*(4*(3*2)))
=>6*(5*(4*6))
=>6*(5*24)
=>6*120
=>720

一定要有结束点,不然就是死循环。