Kotlin入門教學:控制流程

發布日期:2023/12/15
瀏覽次數:381

在Kotlin中,控制流程結構包括 if...elsewhen、還有迴圈結構。這一篇將深入探討 if...elsewhen 的使用方式,並討論在什麼情況下適合使用哪一種結構。

if…else 條件式

基本用法

if...else 是最基本的條件式結構,用來根據條件執行不同的程式區塊。

val x = 10

if (x > 0) {
    println("x 是正數")
} else if (x < 0) {
    println("x 是負數")
} else {
    println("x 是零")
}

簡化的表達式

if 只有一行程式碼時,可以省略大括號。

val message = if (x > 0) "正數" else "非正數"

when 表達式

when 是Kotlin中取代 switch 的結構,更靈活且強大。

基本用法

這個例子中,when 根據 day 的值執行對應的程式區塊。

val day = 3

when (day) {
    1 -> println("星期一")
    2 -> println("星期二")
    3 -> println("星期三")
    else -> println("其他")
}

多個條件

這裡,使用了兩個方式來處理多個條件,第一個是區間(in),第二個是用逗號組合兩種條件,這樣的語法在處理範圍條件時很方便,並且比且if條件式來得更為簡潔。

when (day) {
    in 1..5 -> println("工作日")  //if(day >= 1 && day <= 5)
    6, 7 -> println("週末")   //if(day == 6 || day == 7)
    else -> println("其他")
}

is 用法 (類似於 instanceof)

is 用法類似於Java的 instanceof,用來檢查對象的類型。

val result: Any = "Hello"

when (result) {
    is String -> println("這是一個字串")
    is Int -> println("這是一個整數")
    else -> println("其他型別")
}

不使用參數

這裡,when 不帶參數,而是根據條件的布爾值來判斷執行哪個區塊。

val score = 85

when {
    score >= 90 -> println("優秀")
    score >= 80 -> println("良好")
    else -> println("及格")
}

if…else vs. when

if…else

when

總結來說,if...else 適用於簡單的條件判斷,而 when 提供更靈活的選擇,特別是在處理多條件和多種情況時。選擇使用哪一種結構取決於你的需求和程式碼的可讀性。

Like