介绍
一个函数 内部 调用自己
函数内部可以调用其他函数,当然在函数内部也可以调用自己
代码特点
函数内部的 代码 是相同的,只是针对 参数 不同,处理的结果不同
当 参数满足一个条件 时,函数不再执行
这个非常重要,通常被称为递归的出口,否则 会出现死循环!
应用场景
在处理 不确定的循环条件时,格外的有用,例如:遍历整个文件目录的结构
例子
定义一个函数,使用递归(不用循环语句)实现功能如下:
调用函数,传入数字(比如:5),打印:
5
4
3
2
1
代码
def main(args: Array[String]): Unit = {
def printNum(a:Int):Unit={
println(a)
if(a==1){
return
}
printNum(a-1)
}
printNum(3)
}
图解:
案例
计算数字累加
需求
- 定义一个函数
sum - 能够接收一个
num的整数参数 - 计算 1 + 2 + … num 的结果
def main(args: Array[String]): Unit = {
def sum(i:Int):Int={
// println(i)
if(i==1){
return 1
}
return i + sum(i-1)
}
val res = sum(3)
println(res)
}
图解:

