式としてのIf
CoddyのKotlinジャーニー「基礎」セクションの一部。レッスン 31/93。
ifをインラインで使用して、2つの値から選択する方法を見てきました。しかし、if-elseブロックに複数の文が含まれている場合でも、構造全体を式として使用できます。各分岐の最後の式が返される値になります。
fun main() {
val score = 85
val message = if (score >= 60) {
val grade = "passing"
"You got a $grade score!"
} else {
val grade = "failing"
"You got a $grade score."
}
println(message) // 出力: You got a passing score!
}各分岐には複数の文を含めることができますが、分岐内の最後の式が返され、変数に代入されます。この場合、各ブロックの最終行にある文字列がmessageの値になります。
これはelse ifチェーンでも機能します:
fun main() {
val temperature = 25
val description = if (temperature > 30) {
"Hot"
} else if (temperature > 20) {
"Warm"
} else {
"Cool"
}
println(description) // 出力: Warm
}ifを式として使用する場合、else分岐は必須です。Kotlinでは、どの条件がtrueであっても値が返されることを保証する必要があります。
チャレンジ
簡単次の変数が与えられています:
val hours = 45各分岐で複数の文を使用する if 式を使って、作業員の給与ステータスを判定し、メッセージを作成してください。
if 式を使って変数 payStatus を作成してください:
hoursが 40 より大きい場合:hours - 40と等しい変数overtimeを作成する- 最後の式は
"Overtime: $overtime extra hours"にする
- それ以外の場合:
40 - hoursと等しい変数remainingを作成する- 最後の式は
"Regular: $remaining hours until overtime"にする
payStatus の値を出力してください。
自分で試してみよう
fun main() {
val hours = 45
// TODO: 以下にコードを書いてください
// if式を使って変数payStatusを作成する
// hours > 40の場合: overtime変数を作成し、"Overtime: $overtime extra hours"を返す
// それ以外の場合: remaining変数を作成し、"Regular: $remaining hours until overtime"を返す
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド