什么是递归
A方法调用A方法,就是方法调用自己,用于类似的阶层的计算
递归结构包括两个部分:
递归头:什么时候不调用自身方法,如果没有头,将陷入死循环
递归体:什么时候需要调用自身方法
举例
package Demo;
public class one {
public static void main(String[] args){
System.out.println(f(4));
}
//计算阶层
public static int f(int a){
if (a==1){
return 1;
}else {
return a*f(a-1);
//5*f(4)
// f(4)又会用这个方法自己计算成4*f(3)
//f(3)又会变成3*f(2);以此类推到f(1)
}
}
}
结果
24
递归规则
1、执行一个方法时,就要创建一个新的受保护的独立空间(栈)
2、方法的局部变量是独立的,不会相互影响。
3、如果方法中使用的是引用类型变量(比如数组),就会共享该引用类型的数据
4、递归必须出现退出的条件,否则就是无限递归
5、当一个方法执行完毕,或者遇到return,就会返回,遵守谁调用,就将结果返回给谁,同时当方法执行完毕或者返回时,该方法也就执行完毕