函数参数

28 阅读1分钟

如何定义一个参数 它能接受熟练不定的参数 并计算它们的累加

可变参数:用来接受同一个类型的多个参数

格式:参数类型*

要点:

  1. 类型要一致
  2. 可变参数必须在列表的最后

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)
  }
}

递归函数

递归:在函数内部调用了自己

特点:

  1. 可能会导致死循环 一直调用自己
  2. 大问题可以拆解为同样性质的小问题
  3. 问题拆解到足够小的时候,可以直接求解

起始条件:一个递归的终止条件,确保递归不会无限进行,它处理最简单的情况

递归规则:在这个部分,函数会调用自身,以解决一个更小子的问题


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)
  }
}