【if else】
作为表达式使用会返回一个值,因此不需要再用Java中的三元运算符了
val a = 1
val b = 2
//通常用法
if (a < b)
max = a
else{
max = b
print("max赋值了b")
}
//作为表达式,取代三元运算符
max = if (a < b) a else b
//赋值给变量,需要有else,赋值的语句要放在最后一行
max = if (a < b){
a
}else{
print("...")
b //赋值放在最后一行
}
【when】
用来替代 Java中 的 switch,只要代码中包含 else if 分支都建议换成 when 表达式,需要将判断条件的情况全部列举出来。
//通常用法
when (max) {
1,3,5,7,9 -> print("max是单数") //执行结果一样,多个条件可以写在一起
!in 100..999 -> print("max不是三位数") //可以检测一个值在或者不在一个区间或者集合中
Integer.parseInt("100") ->{ //可以用任意表达式(而不只是常量)作为分支条件
print("max的值是100")
}
}
//作为表达式需要有else(相当于default),可以是代码块,要放到最后一行
val max = 2
val num = when (max){
1 -> 1
2 -> {
println("...")
}
}
print(num) //打印2
fun num2Chinese(num:Int): String{
return when (num){
1 -> "壹"
2 -> "贰"
3 -> "叁"
else -> "无对应文字"
}
}
//可以用来取代 if ,else if链,如果不提供参数,当一个分支的条件为 ture 时则执行该分支
when {
max == 1 -> print("max值为1")
num != 2 -> peint("num值不为2")
else -> print("都不满足")
}