Kotlin編程條件控制示例詳解

本文總覽

本篇來看看 Kotlin的條件控制,這一節知識點 建議與Java中的條件結構類比,會很好理解並記住。

1. When 表達式

在 Kotlin 用 when 來定義多個分支的條件表達式。Kotlin中這個語法與 java 中的 switch 語句非常類似。代碼塊的執行就是將參數與所有的分⽀條件順序⽐較,直到滿⾜某個分⽀條件:(示例 )

when (x) { 
    1 -> print("x == 1") 
    2 -> print("x == 2") 
    else -> { 
        print("x is neither 1 nor 2") 
    } 
}

以上示例中,如果都不滿足確切值的分支,將會執行 else 分支。

when 如果作為⼀個表達式使⽤, 常規情況是必須有 else 分⽀的。 但也有以下特例:

// 一個枚舉對象
enum class Bit { 
    ZERO, ONE 
} 

val numericValue = when (getRandomBit()) { 
    Bit.ZERO -> 0 
    Bit.ONE -> 1 
    // 'else' ... 
}

上面示例說明:編譯器能夠檢測出所有的可能情況都已經覆蓋,這種情況 是可以沒有 else 分支的。

when 語句的分⽀條件可以⽤任意表達式(⽽不隻是常量)來表示:

when (x) { 
    s.toInt() -> print("s encodes x") 
    else -> print("s does not encode x") 
}

when 語句還可以用於檢測⼀個值在( in )或者不在( !in )⼀個區間或者集合中:

when (x) { 
    in 1..10 -> print("x is in the range") 
    in validNumbers -> print("x is valid")        // 在集合中 
    !in 10..20 -> print("x is outside the range") // 不在范圍內
    else -> print("none of the above") 
}

從以上這些特性可知,when 是可以⽤來取代 if – else條件表達式的。

2. If 表達式

在 Kotlin 中, if 是⼀個表達式:會返回⼀個值。這樣其實就不需要三元運算法:( 條件 ? 然後 : 否則 ),if 就可以擔任同樣的角色

val c = if (condition) a else b

使用 in 運算符來檢測某個數字是否在指定區間內,區間格式為 x..y :

fun main() { 
    val x = 5 
    val y = 9 
    if (x in 1..8) { 
        println("x 在區間內") 
    } 
}

若將if用作表達式,例如,用於返回其值或將其分配給變量,則else分支是強制性的。

if 表達式的分⽀可以是代碼塊:

val max = if (a > b) { 
    print("Choose a") 
    a 
} else {
    print("Choose b") 
    b 
}

在Kotlin中,常用的 if 表達式

  • if表達式
  • if..else表達式
  • if..else if..else表達式
  • 嵌套表達式

總結

本篇學習 kotlin 的 when表達式 和 if表達式,它與 Java 中 switch語句, if語句有這異曲同工之處。when 表達式和if 表達式常見使用方式,對以後的項目中邏輯處理有很大幫助

以上就是Kotlin編程條件控制示例詳解的詳細內容,更多關於Kotlin 條件控制的資料請關註WalkonNet其它相關文章!

推薦閱讀: