递归
递归就是方法自己调用自己,每次调用时传入不同的变量。
打印问题
public static void main(String[] args){
test(4);//打印问题,回顾调用机制
}
public static void test(int n){
if(n>2){
test(n-1);
}
System.out.prinln("n="+n);
}
-------------------------------------------------
控制台会打印输出:
n=2
n=3
n=4
原理分析:递归调用的时候,每执行到一个方法,就会开辟一个独立的空间(栈)
阶乘问题:
//阶乘问题
public static int factorial(int n){
if(n==1){
return 1;
}else{
return factorial(n-1)*n;
}
}
------------------------------
factorial(1)=1;
factorial(2)=factorial(1)*2=1*2;
factorial(3)=factorial(2)*3=1*2*3;
factorial(4)=factorial(3)*3=1*2*3*4;