方法递归调用(了解)
方法的递归调用指的是一个方法自己调用自己的形式。
- 方法必须有一个递归的结束条件
- 方法在每次递归处理的时候一定要做出一些变更
范例:实现1-100的累加操作
//方法递归实现1-100的加和
public class Fangfa6{
public static void main(String args[]) {
System.out.println(num(100));
}
public static int num(int x) {
if(x == 1) { //结束条件
return 1;
}
return x + num(x - 1); //做出变更
}
}
- 【调用】第一次执行sum()方法,主方法执行。return 100 + sum(100-1);
- 【递归】第二次执行sum()方法:return 99 + sum(99-1);
- 【递归】第二次执行sum()方法:return 98+ sum(98-1);
- .....
范例:60!计算
//方法递归实现60!
public class Fangfa7{
public static void main(String args[]) {
System.out.println(nul(60));
}
public static double nul(int x) {
if(x == 1) { //结束条件
return 1;
}
return x * nul(x - 1); //做出变更
}
}
通过代码可以发现使用while循环的操作其实大部分都可以更换为递归,之所以使用递归主要是一个方法可以执行的操作很多,而且结构要好。