函数的使用

31 阅读1分钟

一、定义函数

格式如下:

image.png

举例:

object test33 {

  //定义函数
  //作用:找到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}")
  }
}

image.png

object test33 {
  /*
  函数的基本使用
  返回值:
  1.指定返回值类型
  2.函数内,最后一个表达式(最后一句代码)就是函数的返回值
  3.Unit表示这个函数没有返回值(void)

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

  //定义函数
  //作用:找到x,y中的较大者
  def max(x:Int,y:Int):Int={
    if (x>y)
      x
    else
      y
  }

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

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

    var rst=max(2,3)//调用函数
    println(s"23的较大者是:${rst}")
  }
}

image.png

函数规则

1.只有一行可以省略{}。当Scala的函数体中只有一行表达式时可以省略{},输出结果依然不变。

2.最后一条语句为函数的返回值。当函数体中有多个语句存在时,返回最后一条语句的值。

3.函数的返回类型可以省略。它会自动推断。

4.函数没有形参,在定义函数时可以省略(),那么在调用函数时也不需要添加()

找出x,y,z中最大者

object test34 {
  /*
  函数的基本使用
  返回值:
  1.指定返回值类型
  2.函数内,最后一个表达式(最后一句代码)就是函数的返回值
  3.Unit表示这个函数没有返回值(void)

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

  //定义函数
  //作用:找到x,y,z中的较大者
  /*
  分析:
  (1)两个选一个较大者和剩下的那个中选择一个
  val rst=if(x>y) x else y//x,y的较大者
  if(rst>z) rst else z
  (2)
      if (x>=y && x>=z)
      x
    else if (y>=z && y>=x)
      y
    else
      z
   */

  def max(x:Int,y:Int,z:Int):Int={
    if (x>=y && x>=z)
      x
    else if (y>=z && y>=x)
      y
    else
      z
  }


  def main(args: Array[String]): Unit = {
    var rst=max(160,101,106)//调用函数
    println(s"三者中的较大者是:${rst}")
  }
}

image.png

用函数返回多个数据

object test35 {
  //函数返回多个数据
  //作用:找到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(160,101,106)//调用函数
    println(s"最小值是:${rst._1},最大值是:${rst._2}")
  }
}

image.png