开发者学堂课程【【名师课堂】Java 零基础入门:方法的定义与使用(方法递归调用)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/370/detail/4421
方法的定义与使用(方法递归调用)
内容简介:
一、方法递归调用的定义
二、范例1:实现一个 1-100 的累加操作
三、范例2:实现60!
一、方法递归调用的定义
方法的递归调用指的是一个方法自己调用自己的形式。一般如果要进行方法的递归操作往往都具备有以下特点:
l 方法必须有一个递归的结束条件
l 方法在每次递归处理的时候一定要做出一些变更
二、范例1:实现一个1-100的累加操作
public class TestDemo {
public static void main(String args[]) {
System.out.printIn(sum(100));
}
public static int sum(int sum) {
if(num==1) { //结束条件
return 1;
}
return num + sum(num-1); //做出变更
}
}
代码解读如下:
【mian() 调用】第 1 次执行 sum() 方法:return 100+sum(100-1)
【sum() 递归】第 2 次执行 sum() 方法:return 99+sum(99-1)
【sum() 递归】第 2 次执行 sum() 方法:return 98+sum(98-1)
【sum() 调用】倒数第 2 次执行 sum() 方法:return 2+sum(2-1)
【sum() 调用】倒数第 1 次执行 sum() 方法:return 1;
三、范例 2:实现 60!
可以预见该算式输出结果较大,应该使用 double
public class TestDemo {
public static void main(String args[]) {
System.out.printIn(mul (60));
}
public static int sum(int sum) {
if(num==1) { //结束条件
return 1;
}
return num * mul (num-1); //做出变更
}
}
通过代码可以发现使用 while 循环的操作其实大部分都可以更换为递归,之所以使用递归主要是一个方法可以执行的操作很多而且结构要好。