方法递归调用
- 方法的递归调用指的是自己调用自己的形式。一般如果要进行一个方法的递归调用是要有以下几个条件的。
- 方法必须有一个递归的结束条件。
2.方法在每次递归时一定要进行一些变更。
范例:实现1~100的累加操作。
public class Hello {
public static void main(String args[]) {
int num = 1;
int result = 0;
while (num <= 100) {
result += num;
num++;
System.out.println(result);
}
}
}
这个操作可以变成递归的形式
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()调用】第一次执行sum()方法;return100+sum(100-1)
【sum()递归】第二次执行sum()方法;return99+sum(99-1)
【sum()递归】第三次执行sum()方法;return99+sum(98-1)
.
.
.
【sum()递归】倒数第二次执行sum()方法;return2+sum(2-1)
【sum()递归】倒数第一次执行sum()方法;return1+sum(1-1)
先调用后,返回执行就变成了1+...+100。
范例:实现60的阶乘
public class Hello {
public static void main(String args[]) {
System.out.println(mul(60));
}
public static double mul(int num) {
if (num == 1) {
return 1;
}
return num * mul(num - 1);
}
}
- 使用while循环的操作其实大部分都可以转换成递归。