今天要介紹的是 "條件判斷",在程式裡我們必須考慮到各種情形的發生,並定義各種相對應的行為。
中文就是艱深晦澀,這樣看可能大部分人無法理解,我們就用程式碼來說明吧!
fun chargeByAge(age: Int): Int {
val charge: Int
if (age < 6) {
charge = 0
} else {
charge = 400
}
return charge
}
這是一個餐廳依據年齡來計算須付費多少的 function ,這個 function 需要提供客人的年齡來當作參數,然後會計算出該顧客需付費多少。
既然是依據年齡來決定,所以顧客的年齡即為判斷的條件,而需付費的金額則是其相對應的行為。
Ex1. 小明( 又是小明 )今年五歲,所以此 function 的輸入參數為 5 ,在 if 後面的 () 裡必須為一 Boolean 值,而 age(5) < 6 為真,固會執行 if 區塊裡的程式碼,而當有一條件成立, else 區塊便不會被執行。
該 function 會 return 0。
Ex2. 我們不要在舉小明當例子了,小明他爸今年 35 歲,所以此 function 輸入參數為 35 ,而 age(35) < 6 不為真,固 if 區塊不執行,當 else 以上沒有任何條件成立,則 else 區塊則會被執行。
該 function 會 return 400。
以上是 if..else 的判斷式寫法與判斷邏輯,補充一下,若有多件條件需要有不同的相對應行為,則可以在 if else 中加入 else if 關鍵字,其寫法與 if 相同,需要有一 () 來做條件判斷。
這樣就結束了嗎?
當然不,不免俗的繼續來提一下 Kotlin 的魅力所在 - 簡化程式碼。
當今天對應的行為只有一行程式碼時,{} 可以被省略,直接將對應的行為寫在 if else 之後。
fun chargeByAge(age: Int): Int {
val charge: Int
if (age < 6) charge = 0
else charge = 400
return charge
}
而在第一天 [Day2] Kotlin 語法-變數 有提到, if else 判斷式可做 expression,所以可以再將程式碼簡化成以下。
fun chargeByAge(age: Int): Int {
val charge =
if (age < 6) 0
else 400
return charge
}
看起來 484 又簡潔又舒服呢?!
以上是 if..else 條件判斷,明天再來要介紹另一種條件判斷 when 。