一、递归
递归:指在当前方法内调用自己的这种现象
🔵递归的分类:
- 直接递归:方法自身调用自己
- 间接递归:间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法
🔵🔵注意事项:
- 递归一定要有条件限制,保证递归能够停止下来,否则会发生栈内存溢出
- 在递归中能够虽然有限定条件,但是递归的次数不能太多,否则也会发生栈内存溢出
- 构造方法 禁止递归
🔵🔵🔵递归的使用前提:当调用方法的时候,方法的主体不变,每次调用方法的参数不同,可以使用递归
二、练习
/* 定义一个方法 使用递归计算1-n之间的和 n+(n-1)+(n-3)+……+1 使用递归必须明确的条件: 递归结束的条件:获取到1的时候结束 递归的目的:获取下一个被加的数字(n-1) */ public class demoPra { public static void main(String[] args) { int s=sum(100 ); System.out.println(s); } public static int sum(int n){ //获取到1的时候结束 if(n==1){ return 1; } //获取下一个数字 return n+sum(n-1); } }
三、使用递归求阶乘
public class demoRecurison { public static void main(String[] args) { int jie=jc(5); System.out.println(jie); } public static int jc(int n){ if(n==1){ return 1; } return n*jc(n-1); } }
四、递归打印多级目录