函数的基本使用

59 阅读1分钟

定义函数

作用1:找到x,y中的最大值

def max(x: Int,y:Int):Int = {
  if(x > y)
    x
  else
    y
}
def main(args: Array[String]): Unit = {
  var rst = max(2,3) // 调用函数
  println(s"2和3的较大值为:${rst}")
}
结果:
23的较大值为:3

返回值:

1.指定返回值类型

2.函数内,最后一个表达式(最后一句代码)就是函数的返回值

3.Unit 表示这个函数没有返回值(void)

// 如果没有函数,可以省略()
def say() :Unit = {
  println("hello world")
}


def main(args: Array[String]): Unit = {
  say()
}

参数

1.如果没有参数,在定义函数时,可以省略(),再调用函数的时候,就不要添加()

def say:Unit = {
  println("hello world")
}

def main(args: Array[String]): Unit = {
  say
}
结果
hello world

作用2:找到x,y,z中的最大值

分析:

(1)三选一

if (x >= y && x >= z)
  x
else if (y >= x && y >= z)
  y
else (z >= x && z >= y)
  z
  
def main(args: Array[String]): Unit = {
  var rst = max(2,3,100) // 调用函数
  println(s"较大值为:${rst}")
}

(2)两个选一个较大者,较大者和剩下的那个中选择一个

val rst = if(x > y) x else y // x,y的较大者
if(rst > z) rst else z

def main(args: Array[String]): Unit = {
  var rst = max(2,3,100) // 调用函数
  println(s"较大值为:${rst}")
}

作用3:找到x,y,z中的最大值和最小值

分析:

(Int,Int)是返回值的类型,表示这个函数的返回值中有两个整数!!!

def max(x: Int, y: Int, z: Int): (Int,Int) = {
  var maxValue = if (x > y) x else y // x,y的较大者
  maxValue = if(maxValue > z ) maxValue else z

  var minValue = if (x < y) x else y
  minValue = if(minValue < z ) minValue else z

  // 返回一个容器,包含两个值
  (minValue,maxValue)

}

def main(args: Array[String]): Unit = {


  var rst = max(2,3,100) // 调用函数
  println(s"最小值为:${rst._1},较大值为:${rst._2}")
}
结果
最小值为:2,较大值为:100