Scala递归概述及案例
Posted 黑马程序员官方
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala递归概述及案例相关的知识,希望对你有一定的参考价值。
章节目标 1. 了解递归的相关概述 2. 掌握阶乘案例 3. 掌握斐波那契数列案例 4. 掌握打印目录文件案例1. 递归
递归指的就是 方法自己调用自己的情况 . 在涉及到复杂操作时 , 我们会经常用到它 . 在使用递归时 , 要注意以下三点 : 1. 递归必须有出口 , 否则容易造成 死递归 . 2. 递归必须要有规律 . 3. 构造方法不能递归 . 4. 递归方法必有 返回值的数据类型 . 例如 : 下述的代码就是递归的写法def show() =
show()
2. 案例一: 求阶乘
2.1 概述
所谓的阶乘其实指的是 数字 1 到该数字的累乘结果 , 例如 5 的阶乘就相当于 5 * 4 * 3 * 2 * 1 , 4 的阶乘就相当于 4 * 3 * 2 * 1 , 根据上述的描述 , 我们可以得出两个结论 : 1. 阶乘公式为 ( 例如 : 求数字 n 的阶乘 ): n! = n * (n - 1)! 2. 1 的阶乘等于 1, 即 : 1! = 12.2 需求
计算 5 的阶乘 .2.3 参考代码
2.4 内存图解
概述阶乘图解
3. 案例二: 斐波那契数列
3.1 概述
传说在罗马时期有个意大利青年叫 斐波那契 , 有一天他提出了一个非常有意思的问题 , 假设 : 1. 一对小兔子一个月之后会成长为一对大兔子 . 2. 每一对大兔子每个月都会生一对小兔子 . 3. 假设所有兔子都不死亡的情况下 , 问 : 1 对小兔子 , 1 年之后会变为多少对兔子 ?3.2 思路分析
即 : 已知数列 1, 1, 2, 3, 5, 8, 13..., 问 : 第 12 个数字是多少 ?3.3 参考代码
4. 案例三: 打印目录文件
4.1 需求
1. 定义 printFile(dir:File) 方法 , 该方法接收一个文件目录 , 用来打印该目录下所有的文件路径 . 2. 在 main 方法中测试 printFile() 方法 .4.2 目的
考察 递归 , Java 的 File 类 相关内容 . 注意 : 因为 Scala 是依赖 JVM 的 , 所以 Java 中的类库 , Scala 也可以无缝调用4.3 参考代码
以上是关于Scala递归概述及案例的主要内容,如果未能解决你的问题,请参考以下文章