方法的递归是指在一个方法的内部调用自身的过程,递归必须要有结束条件,不然就会陷入无限递归的状态,永远无法结束调用。
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 }
运行结果:
第12行代码相当于在gerSum()方法的内部调用了自身,这就是方法的递归,整个递归过程在n==1时结束。方法的递归调用过程很复杂,通过下图来分析整个调用过程--
当n的值为1时,所有递归调用的方法都会以相反的的顺序相继结束,所有的返回值都会进行累加,最终得到结果10
(通俗的讲,当第四次递归结束时,返回值为1,再往上第三次递归return temp + 2实际上就等于1+2,return 3,以此类推,得出最终结果10)
关于递归,理解起来有点不容易,可以自行百度了解