國小造句最常見的題目就是:如果...就...,如果被打就會痛。對於程式語言也是有這樣的語法給你作使用的,且就跟平常我們說的方式差不多,叫一個國小生來寫程式都沒問題。
並沒有。
條件語句最常見的就是 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 去代替 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 比起來是不是更清楚明瞭一點了呢。
條件式的介紹就先到這邊!
下一篇見寫寫打家打家擺掰。