Kotlin入門教學:控制流程
發布日期:2023/12/15
瀏覽次數:381
在Kotlin中,控制流程結構包括 if...else
、when
、還有迴圈結構。這一篇將深入探討 if...else
和 when
的使用方式,並討論在什麼情況下適合使用哪一種結構。
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
- 適用情境: 簡單的條件判斷,特別是只涉及一個變數的情況。
- 優點: 直觀,適用於少數條件的情況。
- 缺點: 當條件較多時,嵌套的
if...else
可能會讓程式碼變得難以閱讀。
when
- 適用情境: 複雜的條件判斷,多條件且需要處理多種情況。
- 優點: 提供更靈活的表達方式,易於擴展。
- 缺點: 對於簡單的條件判斷可能顯得過於冗長。
總結來說,if...else
適用於簡單的條件判斷,而 when
提供更靈活的選擇,特別是在處理多條件和多種情況時。選擇使用哪一種結構取決於你的需求和程式碼的可讀性。
Like