递归:函数自身直接或者间接地调用到了自身。
那么什么时候使用递归呢?
一个功能在被重复使用,并每次使用时,参与运算的结果与上一次调用有关,此时可以用递归来解决问题。
注意:1、递归一定要明确条件,否则容易死循环,栈内存溢出。
2、一定要注意递归的次数,如果次数太多,容易导致栈内存溢出。
下面用一个简单的例子来展示递归:
package recursion;
public class RecursionDemo {
public static void main(String[] args) {
/*
* 采用递归求和的方法
*/
int num=9,sum;
sum=method_1(num);
System.out.println(sum);
//--------------------------------------------
/*
* 下面展示一个递归无限循环(直到爆内存)的例子
*/
show();//将爆出:StackOverflowError
}
public static void show() {
display();
}
public static void display() {
show();
}
public static int method_1(int num) {
if(num==1)
return 1;
return num+method_1(num-1);
}
}
本文介绍了递归的基本概念,探讨了何时使用递归,并通过一个简单的求和示例展示了递归的实现方式。同时,文章强调了递归过程中需要注意的问题,如避免死循环和栈内存溢出。
775

被折叠的 条评论
为什么被折叠?



