java编程基础--方法的递归

方法的递归是指在一个方法的内部调用自身的过程,递归必须要有结束条件,不然就会陷入无限递归的状态,永远无法结束调用。

 1 public class Example {
 2     public static void main(String[] args) {
 3        int sum = getSum(4);
 4         System.out.println("sum =" +sum);
 5     }
 6         //下面的方法使用递归实现求1 ~ n的和
 7       public static int getSum(int n){
 8         //满足条件,递归结束
 9         if (n ==1){
10             return 1;
11         }
12         int temp = getSum(n -1);
13         return  temp + n;
14       }
15       
16 }

运行结果:

java编程基础--方法的递归

  第12行代码相当于在gerSum()方法的内部调用了自身,这就是方法的递归,整个递归过程在n==1时结束。方法的递归调用过程很复杂,通过下图来分析整个调用过程--

 java编程基础--方法的递归

  整个递归过程中getSum()方法被调用了4次,每次调用时,n的值都会递减。当n的值为1时,所有递归调用的方法都会以相反的的顺序相继结束,所有的返回值都会进行累加,最终得到结果10

(通俗的讲,当第四次递归结束时,返回值为1,再往上第三次递归return temp + 2实际上就等于1+2,return 3,以此类推,得出最终结果10)

关于递归,理解起来有点不容易,可以自行百度了解