Menu
Coddy logo textTech

式としての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であっても値が返されることを保証する必要があります。

challenge icon

チャレンジ

簡単

次の変数が与えられています:

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"を返す
    
    
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Kotlinプレイグラウンド