Kotlin入門-更靈活的條件控制

在這裏插入圖片描述

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在條件判斷時,也是有先後順序的。

前面被判斷成功後,後面的語句就不會執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章