章节目标
- 了解递归的相关概述
- 掌握阶乘案例
- 掌握斐波那契数列案例
- 掌握打印目录文件案例
1. 递归
递归指的就是 方法自己调用自己的情况
. 在涉及到复杂操作时, 我们会经常用到它. 在使用递归时, 要注意以下三点:
- 递归必须有出口, 否则容易造成 死递归 .
- 递归必须要有规律.
- 构造方法不能递归.
- 递归方法必有 返回值的数据类型 .
例如: 下述的代码就是递归的写法
def show() = {
show()
}
2. 案例一:求阶乘
2.1 概述
所谓的阶乘其实指的是 数字1到该数字的累乘结果 , 例如5的阶乘就相当于 5 * 4 * 3 * 2 * 1
, 4的阶乘就相当于 4 * 3 * 2 * 1
, 根据上述的描述, 我们可以得出两个结论:
- 阶乘公式为(例如: 求数字n的阶乘): n! = n * (n - 1)!
- 1的阶乘等于1, 即: 1! = 1
2.2 需求
计算5的阶乘.
2.3 参考代码
//案例: 求5的阶乘.
object ClassDemo01 {
//1. 定义方法, 用来求数字n的阶乘.
def factorial(n:Int):Int = if(n == 1) 1 else n * factorial(n - 1)