递归:指在当前方法内调用自己的这种方法


递归的分类

递归分两种,直接递归和间接递归

1.直接递归称为 方法自身调用自己


2.间接递归:可以用A方法调用B方法 ,B方法调用C方法 C方法调用A方法


注意事项:

递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出

在递归中虽然有限定条件,但是递归次数不能太多,否则也会发生栈内存溢出

构造方法,禁止递归


public class Demo01 {

public static void main(String[] args) {

//a();

b(1);

}

//构造方法,禁止递归 编译报错:构造方法是创建对象使用的,一直递归会导致内存中有无数多个对象,直接编译报错

public Demo01() {

//Demo01(); //编译报错

}

//在递归中虽然有限定条件,但是递归次数不能太多,否则也会发生栈内存溢出 6151 溢出异常

private static void b(int i) {

System.out.println(i);

if (i==10000) {

return;//结束方法

}

b(++i);

}

/*

*

1.递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出

* */

private static void a() {

System.out.println("a方法");

a();

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27递归的使用前提:当调用方法的时候,方法的主体不变。每次调用方法的参数不同,可以使用递归递归练习1计算1-n之间的和1+2+3+…+n可以看成n+(n-1)+(n-2)+.....+1已知最大值为n 最小值:1使用递归的前提1.递归的结束条件 获取到1的时候结束2.递归的目的: 获取下一个被加的数字(n-1)public static int sum(int n) {

递归算法的前提及方法 递归算法的优缺点

猜你喜欢

联系我们

联系我们

888-888

邮件:admin@lcrz.cn

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部