Java中递归指的是方法自身调用自身
递归的结构
递归通常由两部分组成
递归头:规定什么时候不调用自身方法。
递归体:规定以怎样的形式调用自身方法。
构建及运行过程
设立边界条件:什么情况下不能调用自身方法,即递归头的构建
前阶段:从跳出边界条件持续调用自身方法直至符合边界条件
返回阶段:从最内层调用方法的结果依次返回至上一层递归直至最外层
以用递归求得5的阶乘为例
public static void main(String[] args){ int r=f(5); System.out.println(r); } public static int f(int i){ if(i==1) return 1; else return i*f(i-1); }
注意事项
递归于程序员而言非常简便。
但是由于Java的栈机制(即递归项会储存于栈中),如果递归次数过多,如上述求整数阶乘,如果这个数是1000那么很可能会导致栈溢出错误(StackOverFlow)
因此,在同等难度下并不推荐递归的使用。