函数的使用
定义一个函数
1.位置:可以写在main里面,也可以写在外面
2.要点:
返回值的类型
省略return
返回值,可以省略return
特殊的写法
1.没有参数列表,可以省略定义函数时的(),那么调用的时候,也不需要加上()
2.函数的最后一条语句为函数的返回值。
3.如果函数体只有一句代码,则可以省略{ }
在经过函数调用:代码如下
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 test:Unit= {
平日那天两年("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