首先运行以下代码块,观察其运行结果,输出1234,4321而不是。
public class Test {
String name="你好";
public static void main(String []args){
Test test=new Test();
test.function(4);
}
public void function(int n){
if (n>1){
function(n-1);
}
System.out.println("n="+n);
}
}
我们来仔细看一下代码的运行情况以及运行顺序,可以发现在递归调用的过程中,会占用大量的空间。
最后我们加深一下理解,运行一下以下代码,仅仅在方法区加上了一个else,发现结果仅仅输出了一个1,是因为在其他满足的条件下,就不会区执行输出语句了。
public class Test {
String name="你好";
public static void main(String []args){
Test test=new Test();
test.function(4);
}
public void function(int n){
if (n>1){
function(n-1);
}
else{
System.out.println("n="+n);}
}
}