1 概述
在当前方法内部调用自己的这种现象,但必须确保这个方法调用会有结束的条件,即不能出现无限调用自己的情况。
2 使用
需求:
求1~num之和。
分析:
如果num=5的话,我们定义一个方法getSum(5)表示求1~5之和,getSum(4)表示1~4之和,以此类推,有如下结论:
//getSum(5) 1到5之和
//5+getSum(4) 5 + (1到4之和)
//5+4+getSum(3) 5 + 4 + (1到3之和)
//5+4+3+getSum(2) 5 + 4 + 3 + (1到2之和)
//5+4+3+2+getSum(1) 5 + 4 + 3 + (1之和)
//5+4+3+2+1 5 + 4 + 3 + 2 + 1
步骤:
1定义一个static方法getSum(int num),获取1~num之和
2在getSum(int num)方法中,如果num=1,则返回1,这就是递归的结束条件
3如果num!=1,则调用getSum(num-1)
4在main方法中,调用getSum(5);
代码:
public class Test02 {
public static void main(String[] args) {
//求1到5之和
int sum = getSum(5);
System.out.println("sum:" + sum);
}
public static int getSum(int num){
if(num==1){
return 1;
}
return num + getSum(num-1);
}
}
|
|