13-if条件语句
4.5.1 if条件语句
if-else语句是控制程序流程的一种基本形式,其中else是可选的。在Kotlin中,if本身就是一个表达式,它有返回值。因此,Kotlin并不需要像Java那样提供三元操作符(condition?then: else),普通的if语句就能胜任这个角色。下面来看一下传统if语句的用法。
val a = 10
val b = 20
var max: Int = a
//传统写法
if (a < b) max = b
// With else写法
if (a > b) {
max = a
} else {
max = b
}
// 作为表达式写法
val max = if (a > b) a else b
println("max:$max") //输出max:20
当然,如果想将if语句作为表达式使用也是可以的,那么最后的表达式就是该块的值。如果if表达式只有一个分支,或者分支的结果是Unit , 那么它的值就是Unit。
var a = 10
var b = 20
val max = if (a > b) {
print("Max is a")
a
} else {
print("Max is b")
b
}
println(max) //输出Max is b20
在使用if-else控制语句时,需要注意以下几点规则。
- if后面的括号不能省略,括号里表达式的值最终必须返回布尔值。如果条件体内只有一条语句,那么if后面的大括号可以省略。
- 对于给定的if语句,else语句是可选的,else if语句也是可选的。如果需要同时使用else和else if语句,则else必须出现在else if之后。
- 有多条else if语句同时出现时,如果有一条else if语句的表达式满足条件,那么其他所有else if和else分支会被忽略。
- 如果出现有多个if语句且只有一个else的情形,则else子句归属于最内层的if语句。