方法递归的调用就是自己调用自己情况

在每一次使用递归代码中要求进行数据的有效处理;

需要明确的给出一个递归的结束条件;如果没有结束条件会造成内存溢出

package com.yidu.test;

public class Love {

public static void main(String[] args) {

System.out.println(sum(100));
}

public static int sum(int num){
if(num==1){//结束条件
return 1;
}
return num+sum(num-1);//每一次递归都修改结束条件
}

}

 

解析:

第一次执行:main方法,return 100+sum(99)

第二次执行:sum方法,return 99+sum(98)

第三次执行:sum方法,return 98+sum(97)

第98次执形:sum方法,return2+sum(1)

第99次执行:sum方法,return 1

 

最终执行:return 100+sum(99)+sum(98)+.......sum(2)+1;