一、什么是递归?
递归在编程中就是你定义了一个方法,方法里面又调用了这个方法本身,通俗讲就是自己调自己。
二、递归图解:
方法在调用时方法会入栈,我们以求n的阶乘为例,代码如下
public static Integer factorial(int num) {
//递归终止条件:必须有,不然会无限递归
if (num == 1){
return 1;
}else{
return num * factorial(num - 1);
}
}
我们传入一个参数num,当num等于1时返回1,否则我们就继续调用本方法,并且这次调用传入的参数为num-1,直到num等于1时,就不再调用自己,而是返回1。
假设传入参数为3。
public static void main(String[] args) {
int result = factorial(3);
System.out.println("递归结果:" + result);
}
栈空间内方法调用的图示: