12.函数的基本使用

46 阅读2分钟

函数的使用

定义一个函数
    1.位置:可以写在main里面,也可以写在外面
    2.要点:
           返回值的类型
           省略return
        返回值,可以省略return
特殊的写法
1.没有参数列表,可以省略定义函数时的(),那么调用的时候,也不需要加上()
2.函数的最后一条语句为函数的返回值。
3.如果函数体只有一句代码,则可以省略{ }

屏幕截图 2025-10-09 080813.png 在经过函数调用:代码如下

object Base41 {
  def max(x:Int,y:Int):Int = {
     if (x > y) {
       x
     } else {
       y
     }
  }

  def main(args: Array[String]): Unit = {
    val s = max(10,20)
    println(s);
  }
}

例题:

object Base47 {
  def getmaxamndMin(x:Int,y:Int,z:Int):(Int,Int) = {
    var min:Int= x
    var max:Int= x

    min = if(x < y) { x } else { y }
    min = if(min < z) { min } else { z }
    println(min)

    max = if(x < y) { y } else { x }
    max = if(max < z) { z } else { max }

    (min,max)
  }

  def main(args: Array[String]): Unit = {
    val r = getmaxamndMin(10,20,3)
    println(s"最小值${r._1}")
    println(s"最大值${r._2}")
    // 定义元组
    val t = ("1",1,2)
  }
}
结果:
    3
    最小值3
    最大值20
    

函数参数的使用

object Base48 {
  def hello(name:String="小明",age:Int=17,gender:String="女"):Unit = {
    println(s"hello,我是${name},${age} 岁 , 性别:${gender}")
  }


  def main(args: Array[String]): Unit = {
    hello("小花",18,"女")
    hello("小明",19,"男")
    hello("小花",18)
    hello()

    hello(age=18)
    hello(gender = "男",name = "小李")
  }
}
结果:
        hello,我是小花,18 岁 , 性别:女
        hello,我是小明,19 岁 , 性别:男
        hello,我是小花,18 岁 , 性别:女
        hello,我是小明,17 岁 , 性别:女
        hello,我是小明,18 岁 , 性别:女
        hello,我是小李,17 岁 , 性别:男
定义函数的时候,不写(),那么在调用的时候,也不能写()
def testUnit= {
    平日那天两年("test.....")
}

def main(args:Array[String]):Unit = {
        test//正确
        test()//错误的!
}
允许参数的个数不同,类型相同
变参:参数类型的后面,加一个*
object Base49 {
  def getSum(args:Int*):Int = {
    var sum = 0
    for (i <- args){
      sum += 1
    }
    sum
  }


  def main(args: Array[String]): Unit = {
    val result1 = getSum(1)
    val result2 = getSum(4,1,2,3,5)
    println(result1,result2)
  }
}
判断给定的三边,能否构成一个三角形?
object Base50 {
    def testTriangle(a:Double,b:Double,c:Double):Boolean = {
      a+b>c && a+c>b && b+c>a
    }


  def isPrime(num:Int):Boolean = {
    var isPrimeNum = true
    for (i <- 2 to num-1){
      if(num % i == 0){
        isPrimeNum = false
      }
    }
    isPrimeNum
  }

  def main(args: Array[String]): Unit = {
    val r = testTriangle(1.0,2.0,2.0)
    println(r)

    val r1 = isPrime(9)
    println(r1)
  }
}
结果:
        True
        false