递归

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)

因此,在同等难度下并不推荐递归的使用。

原文地址:https://www.cnblogs.com/YuanShiRenY/p/DiGuiLearn.html