递归
就是方法定义本身调用方法本身的现象叫做递归
注意了!!注意了!!!
StringBuffer.append().append().append(),这个不叫作递归,这个叫做方法的连续使用
Math.max(Math.max(a,b),c),这个也不叫做递归,这玩意叫方法的嵌套使用
举例:
大家伙小时都应该都听过这个故事吧:
从前有座山,山上有座庙,庙里有个老和尚和小和尚说
从前有座山,山上有座庙,庙里有个老和尚和小和尚说
从前有座山,山上有座庙,庙里有个老和尚和小和尚说
…
那这个故事什么时候会截至呢,就是老和尚圆寂了,小和尚还俗了,故事也就到此为止了,故事停止的条件可以理解成递归的结束条件,也就是递归的出口。
递归的注意事项
1、递归一定要有一个出口,结束条件,否则!!!!就会变成死循环
2、递归的次数不能太多,不然就会发生内存溢出异常
3、构造方法不能使用递归
public class FileDemo {public static void show(int i) {//第一步,定义一个结束的条件!!!!if ((i<0)) {System.out.println("循环结束");}else {System.out.println(i);show(--i);}}public static void main(String[] args) {show(120);}}
运行效果截图