在 Kotlin 中實現 Switch Case 語句

Kailash Vaviya 2023年1月30日 2022年5月11日
  1. 在 Kotlin 中為 when 語句提供兩個或多個選項
  2. 將分支條件應用於 Kotlin 中的 when
  3. 在 Kotlin 中使用不需要引數的 when
  4. 使用 when 表示式檢查資料型別
在 Kotlin 中實現 Switch Case 語句

本文將介紹如何在 Kotlin 中實現一個 switch case。Kotlin 語言沒有任何 switch 語句。相反,它支援更簡單的 when 語句。它是 Kotlin 等價於 Java 的 switch 語句。替換 Kotlin 中的 switch 語句背後的想法是使程式碼更易於理解。但在進入 when 語句之前,讓我們先看看 Java switch case 的使用。

示例程式碼:

class Playground {
    public static void main(String[ ] args) {
        int n = 1;
        switch(n) {
            case 0:
                System.out.println("Invalid");
            break;
            case 1:
                System.out.println("Valid");
            break;
            default:
                System.out.println("Number should be 0 or 1.");
            break;
        }
    }
}

輸出:

Valid

switch 語句減少了程式碼,因為我們不必使用 if...else if 條件。Kotlin 使用 when 語句進一步簡化了這一點。這是在 Kotlin 中使用 when 獲得與前面的 Java 示例相同的結果的程式碼。

示例程式碼:

fun main(args: Array<String>) {
    val n = 1
    when (n) {
        0 -> print("Invalid")
        1 -> print("Valid")
        else -> {
            print("Number should be 0 or 1.")
        }
    }
}

輸出:

Valid

如果我們確定輸入的數字來自給定的案例,我們也可以從程式碼中刪除 else 部分。Kotlin when 語句中的 else 類似於 Java switch 語句中的 default。除了使用 when 作為標準語句外,我們還可以將它用於不同的目的,例如在單個語句中提供多個選項、不帶引數的分支條件、檢查變數的型別等。我們將逐一介紹這些情況。

在 Kotlin 中為 when 語句提供兩個或多個選項

switch 語句中,我們可以一次將一個 case 與給定值匹配。但是在 Kotlin 中使用 when 時,我們可以通過用逗號分隔每個選項來為單個案例提供多個選項。在下面的示例中,我們將為數字 1 和 2 列印 Valid。

示例程式碼:

fun main(args: Array<String>) {
    val n = 2
    when (n) {
        0-> print("Invalid")
        1, 2 -> print("1 and 2 are Valid")
    }
}

輸出:

1 and 2 are Valid

將分支條件應用於 Kotlin 中的 when

使用 Kotlin when 語句,我們還可以應用分支條件。假設我們需要將一個案例與一系列選項進行匹配;我們可以使用分支條件來做到這一點。如果條件為真,則執行 case 後面的語句。這是相同的演示。

示例程式碼:

fun main(args: Array<String>) {
    val n = 3
    when (n) {
        0 -> print("Invalid")
        1 -> print("Invalid")
        in 2..4 -> print("Numbers 2 through 4 are Valid")
    }
}

輸出:

Numbers 2 through 4 are Valid

由於數字是 3,它滿足條件 in 2..4。因此,條件的列印語句顯示為輸出。但是如果滿足兩個條件呢?在這種情況下,只會執行第一個真正的條件,其餘的將被忽略。

示例程式碼:

fun main(args: Array<String>) {
    val n = 3
    when (n) {
        0 -> print("Invalid")
        1 -> print("Invalid")
        in 2..4 -> print("Numbers 2 through 4 are Valid")
        in 1..4 -> print("Numbers 1 through 4 are Valid")
    }
}

輸出:

Numbers 2 through 4 are Valid

儘管這兩個條件都為真,但編譯器將只執行上述情況下第一個條件的 print 語句。

在 Kotlin 中使用不需要引數的 when

我們也可以使用 when 表示式而不給出任何引數。這意味著我們可以使用表示式然後開始編寫程式碼塊來執行。我們可以在塊中編寫條件語句。當條件為真時,執行相鄰的語句。這就像執行許多條件語句但只執行第一個為真的條件語句。

示例程式碼:

fun main(args: Array<String>) {
    val n = 3
    when {
        n < 4 -> print("Number is less than 4")
        n > 4 -> print("Number is greater than 4")
    }
}

輸出:

Number is less than 4

使用 when 表示式檢查資料型別

通過在 Kotlin 中使用 when 表示式,我們可以檢查所提供變數的資料型別。它是在條件分支方法的幫助下完成的。我們將使用有助於型別檢查變數的 is 條件。

示例程式碼:

fun main(args: Array<String>) {
    var n: Any = 2
    when(n){
        is Int -> println("Integer")
        is String -> println("String")
        is Double -> println("Double")
    }
}

輸出:

Integer
Kailash Vaviya avatar Kailash Vaviya avatar

Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.

LinkedIn

相關文章 - Kotlin Statement