内容
方法自己调用自己
代码上一波
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
注
一定要有结束点,不然就是死循环。