递归:指的是当前方法调用自己的一
递归的分类:
-
递归分为两类:直接递归和间接递归
-
直接递归:称为方法自身调用自己的情况
-
间接递归:可以归结为:方法A调用了方法B,方法B调用了方法C,方法C反过来又调用了方法A。
种现象。
注意事项:
-
递归一定要有边界条件 (条件限定),保证递归能够停止下来,否则会发生栈内存溢出。
-
在递归当中虽然有限定条件,但是递归的次数也不能太多,否则也会发生栈内存溢出现象。
-
构造方法禁止递归。
递归实例代码:
1.计算1~n的和
public int sum(int n){
//设置边界条件
if(n==1){
return 1;
}
return n+sum(n-1);//递归调用自己
}
图解:
2.递归求阶乘
阶乘:所有小于及等于该数的正整数的乘积。
n的阶乘:n! = n * (n-1) * (n-2) * (n-3) * ... * 3 * 2 * 1