如何定义一个参数 它能接受熟练不定的参数 并计算它们的累加
可变参数:用来接受同一个类型的多个参数
格式:参数类型*
要点:
- 类型要一致
- 可变参数必须在列表的最后
object hai21 {
def getSum(args:Int*):Int = {
var sum = 0
for (i <- args){
sum += i
}
sum
}
def main(args: Array[String]): Unit = {
val rst1 = getSum(1,2,3)
val rst2 = getSum(1,2,3,4)
val rst3 = getSum(1,2)
println(rst1 ,rst2,rst3)
}
}
递归函数
递归:在函数内部调用了自己
特点:
- 可能会导致死循环 一直调用自己
- 大问题可以拆解为同样性质的小问题
- 问题拆解到足够小的时候,可以直接求解
起始条件:一个递归的终止条件,确保递归不会无限进行,它处理最简单的情况
递归规则:在这个部分,函数会调用自身,以解决一个更小子的问题
object hai22 {
def f(n:Int):Int = {
if (n == 1) {
1
} else {
f(n - 1) + n
}
}
def main(args: Array[String]): Unit = {
val rst = f(100)
println(rst)
}
}