Kotlin教學 | 從零開始學Kotlin | Kotlin入門 | CH04: 分支(Branch)

分支

以下是 Kotlin 分支(Branch): ifwhen 的基本用法。


1. if 條件判斷

在 Kotlin 中,if 是一種表達式,可以用來執行條件判斷並返回結果。

基本語法

if (條件) {
    // 當條件為真時執行
} else {
    // 當條件為假時執行
}

範例 1:基本 if-else

fun main() {
    val a = 10
    val b = 20

    if (a > b) {
        println("a 比 b 大")
    } else {
        println("b 比 a 大或相等")
    }
}

範例 2:if 作為表達式

Kotlin 中,if 可以返回值,因此常用於賦值操作。

fun main() {
    val a = 10
    val b = 20

    // 將較大的數賦值給 max
    val max = if (a > b) a else b
    println("最大值是 $max")
}

範例 3:多條件 if

可以用 else if 來檢查多個條件。

fun main() {
    val score = 85

    val grade = if (score >= 90) {
        "A"
    } else if (score >= 80) {
        "B"
    } else if (score >= 70) {
        "C"
    } else {
        "F"
    }

    println("成績等級為 $grade")
}

2. when 條件判斷

在 Kotlin 中,when 是功能強大的條件判斷語句,它可以替代 Java 中的 switch,並具有更靈活的語法。

基本語法

when (變數) {
    值1 -> // 當變數等於值1時執行
    值2 -> // 當變數等於值2時執行
    else -> // 預設情況
}

範例 1:基本用法

fun main() {
    val x = 3

    when (x) {
        1 -> println("x 是 1")
        2 -> println("x 是 2")
        3 -> println("x 是 3")
        else -> println("x 是其他值")
    }
}

範例 2:when 作為表達式

if 一樣,when 也可以返回值。

fun main() {
    val x = 2

    val result = when (x) {
        1 -> "One"
        2 -> "Two"
        3 -> "Three"
        else -> "Unknown"
    }

    println("結果是 $result")
}

範例 3:檢查多個值

可以在同一分支中檢查多個值。

fun main() {
    val day = "Saturday"

    when (day) {
        "Saturday", "Sunday" -> println("這是週末")
        "Monday" -> println("這是工作日的開始")
        else -> println("這是一個工作日")
    }
}

範例 4:範圍檢查

使用 in 檢查變數是否在某個範圍內。

fun main() {
    val number = 15

    when (number) {
        in 1..10 -> println("數字在 1 到 10 之間")
        in 11..20 -> println("數字在 11 到 20 之間")
        else -> println("數字超出範圍")
    }
}

範例 5:檢查類型(使用 is

when 可以用來檢查變數的類型,並在條件成立時自動進行智慧型轉換(Smart Cast)。

fun main() {
    val obj: Any = "Kotlin"

    when (obj) {
        is Int -> println("這是一個整數:$obj")
        is String -> println("這是一個字串,長度為 ${obj.length}")
        else -> println("未知類型")
    }
}

範例 6:無參數 when

when 不一定需要變數,條件可以是任意表達式。

fun main() {
    val x = 5

    when {
        x < 0 -> println("x 是負數")
        x == 0 -> println("x 是零")
        x > 0 -> println("x 是正數")
    }
}

Reference

https://kotlinlang.org/docs/control-flow.html

發佈留言