一、递归
递归就是方法自己调用自己,每次调用时传入不同的变量。
二、递归执行机制
比喻像羽毛球桶里面的羽毛球放和拿的顺序
先递后归,后进先出
1.打印问题
案例演示:
public class RecursionTest {
public static void main(String[] args) {
T t = new T();
t.test(4);
}
}
class T{
public void test(int n){
if (n > 2){
test(n - 1);
}
System.out.println("n=" + n);
}
}
执行流程图:
上一个栈的方法没有执行完成所有会一直返回执行是一个栈剩下的语句,直到全部执行完
2.阶乘问题
案例演示:
public class Recursion01 {
public static void main(String[] args) {
T t1 = new T();
int res = t1.factorial(5);
System.out.println("res=" + res);//输出120
}
}
class T {
public int factorial(int n) {
if(n == 1) {
return 1;
}else {
return factorial(n - 1) * n;
}
}
}
执行流程图: