举例:
求整数5-10之间的整数之和为多少(包含5和10)
// 举例--------------
//求整数5-10之间的整数之和为多少(包含5和10)
public class Recursion {
public static void main(String[] args) {
int sumNumber = getSum(5, 10);
System.out.println(sumNumber);
}
/**
*
* @param min 最小数
* @param max 最大数
* @return
*/
public static int getSum(int min,int max){
if (max > min) { //判断的终止条件,如果没有终止条件,就会无限的递归下去,进行死循环
return max + getSum(min, max - 1); //返回最大值 + (最小值,最大值-1)
} else {
return max;
}
}
}
程序解析:
** 首先调用 getSum(5,10)-----> 此时if判断的最大值(max)大于最小值(min),就等于最大值(max)为10进行加法运算。再调用自身方法进行第二次调用。**
第二次调用:最大值(max)减去了1,也就是说最大值(max)现在的值是为9。再进入循环,if判断的最大值(max)大于最小值(min),再进入第三次循环。
一直进行调用,直到最大值(max)不再大于最小值(min)
注意:
递归,可以理解为程序自己调用自己。
但是需要进行跳出操作,也就是相当于判断。
如果不进行判断的话,程序会无限调用自身,从而造成死循环。