//递归(recursion)就是方法自己调用自己,每次传入时传入不同的变量,
public class hsp213{
public static void main(String args[]){
T t1 = new T();
t1.test(4);//输出 n=2 n=3 n=4
}
}
class T{
public void test(int n){
if(n >2){
test(n-1);
}
System.out.println("n= " + n);
}
}
T t1 = new T();
创建一个t1 对象
t1.test(4);
创建test栈,并将4赋给test栈中的n
if(n >2){
test(n-1);
}
4>2故执行test(n-1)即test(3),故又开了一个test栈,将3赋给新开的test栈
3>2故执行test(n-1)即test(2),故又开了一个test栈,将2赋给新开的test栈
2不满足>2,故不执行if语句体,执行
System.out.println("n= " + n);
输出n=2;
然后返回到的第三个test栈,执行第三个test栈中的
System.out.println("n= " + n);
输出n=3
然后返回到的第二个test栈,执行第二个test栈中的?
System.out.println("n= " + n);
?输出n=4
执行完毕后,返回main栈?
?