首先我们用一个例子来深入了解:
图解:
分析:当代码执行到test时,首先会开辟一个新栈,将n的值传递过去,不会执行out,当再次执行test时,再次开辟新栈,并执行n-1;传递n 的值,以此类推,当if语句n>2不符合时,执行Out,向下循环,直到n=4
public class recursion01 {
public static void main(String[] args) {
T t1 = new T();
t1.test(4);
}
}
class T {
public void test(int n) {
if (n > 2) {
test(n - 1);
}
System.out.println("n = " + n);
}
}
结果:
递归练习升级运用:
问题:
通过此次练习能更加熟练的掌握递归机制的运用
public class MonkeyEatPeach {
public static void main(String[] args) {
T3 t1 = new T3();
int day = 1;
int peachNumber = t1.peach(day);
if (peachNumber != -1) {
System.out.println("第" + day +"天" + "有" + peachNumber + "个桃子");
}
}
}
class T3 {
public int peach(int day) {
if(day == 10 ) {
return 1;
}else if(day >= 1 && day <= 10){
return (peach(day+1)+1)* 2;
}else {
System.out.println("请输入1-10的数");
return -1;
}
}
}
运行结果: