- Kotlin 教程
- Kotlin - 首頁
- Kotlin - 概述
- Kotlin - 環境搭建
- Kotlin - 架構
- Kotlin - 基本語法
- Kotlin - 註釋
- Kotlin - 關鍵字
- Kotlin - 變數
- Kotlin - 資料型別
- Kotlin - 運算子
- Kotlin - 布林值
- Kotlin - 字串
- Kotlin - 陣列
- Kotlin - 範圍
- Kotlin - 函式
- Kotlin 控制流
- Kotlin - 控制流
- Kotlin - if...else 表示式
- Kotlin - when 表示式
- Kotlin - for 迴圈
- Kotlin - while 迴圈
- Kotlin - break 和 continue
- Kotlin 集合
- Kotlin - 集合
- Kotlin - 列表
- Kotlin - 集合
- Kotlin - 對映
- Kotlin 物件和類
- Kotlin - 類和物件
- Kotlin - 建構函式
- Kotlin - 繼承
- Kotlin - 抽象類
- Kotlin - 介面
- Kotlin - 可見性控制
- Kotlin - 擴充套件
- Kotlin - 資料類
- Kotlin - 密封類
- Kotlin - 泛型
- Kotlin - 委託
- Kotlin - 解構宣告
- Kotlin - 異常處理
- Kotlin 有用資源
- Kotlin - 快速指南
- Kotlin - 有用資源
- Kotlin - 討論
Kotlin - when 表示式
考慮這樣一種情況:您需要檢查大量的條件。雖然您可以使用if..else if表示式來處理這種情況,但Kotlin 提供了when表示式以更優雅的方式處理這種情況。與編寫許多if...else if表示式相比,使用when表示式要容易得多,也更簡潔。Kotlin when表示式根據以下示例中所述,評估多個備選方案中的一個程式碼段。
Kotlin when按順序與其引數中的所有分支匹配,直到滿足某個分支條件。
Kotlin when表示式類似於C、C++和Java中的switch語句。
示例
fun main(args: Array<String>) {
val day = 2
val result = when (day) {
1 -> "Monday"
2 -> "Tuesday"
3 -> "Wednesday"
4 -> "Thursday"
5 -> "Friday"
6 -> "Saturday"
7 -> "Sunday"
else -> "Invalid day."
}
println(result)
}
執行上述Kotlin程式後,將生成以下輸出
Tuesday
Kotlin when 作為語句
Kotlin when可以作為表示式或語句使用,就像Java中的switch語句一樣。如果將其用作表示式,則第一個匹配分支的值將成為整個表示式的值。
示例
讓我們再次編寫上面的示例,不使用表示式形式
fun main(args: Array<String>) {
val day = 2
when (day) {
1 -> println("Monday")
2 -> println("Tuesday")
3 -> println("Wednesday")
4 -> println("Thursday")
5 -> println("Friday")
6 -> println("Saturday")
7 -> println("Sunday")
else -> println("Invalid day.")
}
}
執行上述Kotlin程式後,將生成以下輸出
Tuesday
組合 when 條件
我們可以將多個when條件組合成單個條件。
示例
fun main(args: Array<String>) {
val day = 2
when (day) {
1, 2, 3, 4, 5 -> println("Weekday")
else -> println("Weekend")
}
}
執行上述Kotlin程式後,將生成以下輸出
Weekday
when 條件中的範圍
Kotlin 範圍使用雙點..建立,我們可以使用in運算子在檢查when條件時使用它們。
示例
fun main(args: Array<String>) {
val day = 2
when (day) {
in 1..5 -> println("Weekday")
else -> println("Weekend")
}
}
執行上述Kotlin程式後,將生成以下輸出
Weekday
when 條件中的表示式
Kotlin when可以使用任意表達式而不是常量作為分支條件。
示例
fun main(args: Array<String>) {
val x = 20
val y = 10
val z = 10
when (x) {
(y+z) -> print("y + z = x = $x")
else -> print("Condition is not satisfied")
}
}
執行上述Kotlin程式後,將生成以下輸出
y + z = x = 20
帶有程式碼塊的 Kotlin when
Kotlin when分支可以作為用大括號括起來的程式碼塊。
示例
fun main(args: Array<String>) {
val day = 2
when (day) {
1 -> {
println("First day of the week")
println("Monday")
}
2 -> {
println("Second day of the week")
println("Tuesday")
}
3 -> {
println("Third day of the week")
println("Wednesday")
}
4 -> println("Thursday")
5 -> println("Friday")
6 -> println("Saturday")
7 -> println("Sunday")
else -> println("Invalid day.")
}
}
執行上述Kotlin程式後,將生成以下輸出
Second day of the week Tuesday
測驗時間 (面試與考試準備)
Q 1 - 關於 Kotlin when 表示式,以下哪項是正確的?
B - Kotlin when 表示式可以替代 if..else if 表示式
答案:D
解釋
所有提到的關於 Kotlin when 表示式的語句都是正確的。
答案:A
解釋
Kotlin when 的語法和功能與 Java 中的 switch 語句非常相似。
廣告