iT邦幫忙

2021 iThome 鐵人賽

DAY 11
0
Software Development

糟了!是世界奇觀!系列 第 11

DAY11 Kotlin基礎 條件語句

國小造句最常見的題目就是:如果...就...,如果被打就會痛。對於程式語言也是有這樣的語法給你作使用的,且就跟平常我們說的方式差不多,叫一個國小生來寫程式都沒問題。

並沒有。


if else

條件語句最常見的就是 if-else,寫起來也算是滿直覺的:

if (count == 42) {
    println("賓果答對了!是42!")
} else {
    println("不是喔不是喔")
}

也可以使用 if-else 去增加條件內容:

if(count == 42){
    println("賓果答對了!答案是42!")
}else if(count < 40){
    println("答案很接近了喔~")
}else{
	  println("不對喔不對喔")
}

也可以將昨天的 x in 1...5 應用進來,就可以很直覺的去判斷變數是在哪個範圍中:

if(count == 42){
    println("賓果答對了!答案是42!")
}else if(count in 1 ..41){    //1~41
    println("再大一點")
}else if(count in 43..100){   //43~100
    println("再小一點")
}else{
	  println("範圍是 1~100 喔")
}

看完上面的程式後你可能會發現,有很多重複的程式,每個條件式的結果都是輸出一個String字串,你可以改寫成以下這樣:

val answerString : String = if(count == 42){
    "賓果答對了!答案是42!"
}else if(count in 1 ..41){
    "再大一點"
}else if(count in 43 ..100){
    "再小一點"
}else{
    "範圍是 1~100 喔"
}
println(answerString)

每個條件分支的結果都是回傳字串,所以我們宣告一個 answerString 去跑 if-else 的判斷式,由判斷式去賦予 answerString 的值。其實一開始宣告的時候是可以不用寫類別註記的,但是為了清楚的解讀程式碼,加上去還是比較好。

When

隨著條件式越來越複雜,你也可以考慮用 when 去代替 if-else :

val answerString = when { 
    count == 42 -> "賓果答對了!答案是42!"
    count in 1..41 -> "再大一點"
    count in 43..100 -> "再小一點"
    else -> "範圍是 1~100 喔"
}

println(answerString)

when表達式是由一個分支條件、一個箭頭和一個結果組成。如果箭頭左側條件為 true, 則會 return 右側的表達式結果。跟 if-else 比起來是不是更清楚明瞭一點了呢。

條件式的介紹就先到這邊!

下一篇見寫寫打家打家擺掰。


上一篇
DAY10 Kotlin基礎 迴圈
下一篇
DAY12 Kotlin基礎 函式
系列文
糟了!是世界奇觀!30

尚未有邦友留言

立即登入留言