Kotlin更靈活的條件控制
除了文字版本,也有Xmind版本 github地址
本文一問:
① 沒有分號,你要注意什麼?《Kotlin入門-沒有分號是個有趣的事情》
有以下幾個方面
- if…else
- x…y
- when
if…else
先看一個範例
val max = if (a > b) {
print("Choose a")
a
} else {
print("Choose b")
b
}
直接賦值給變量➕var的定義,給人一種javascript的感覺。其實大體跟java是一樣的
Java也可以這樣做。只是,一般我們不這樣寫,不符合編碼規範,不利於代碼閱讀。
val result = if (condition) resA else resB
其實,這種寫法,java也是有的。
x…y
代表在x和y之間
if (x in 1..8) { //# x>= 1 && x <= 8
println("x 在區間內")
}
表示要給範圍從1到8之間。比java要簡潔。
When 表達式
在Kotlin中,when更類似switch。可以組合各種條件判斷進行使用。
使用else,來表示剩餘情況,類似switch的default
fun testWhen(inputV : Int) {
when (inputV) {
1 -> println("x == 1")
2 -> println("x == 2")
11 -> println("x == 11")
in 3..6 -> println("x in 3..6")
!in (8..9) -> println("x not 8")
10 -> println("x == 10")
else -> { // 注意這個塊
println("x 不是不是都不是")
}
}
}
fun main() {
(testWhen(3))
(testWhen(5))
(testWhen(6))
(testWhen(8))
(testWhen(9))
(testWhen(10))
(testWhen(11))
}
輸出
x in 3..6
x in 3..6
x in 3..6
x 不是不是都不是
x 不是不是都不是
x not 8
x == 11
注意
when在條件判斷時,也是有先後順序的。
前面被判斷成功後,後面的語句就不會執行。