kotlin_制御文_when_条件分岐

 

android アプリ作成について学習しているのですが、


そのうちkotlinの制御文の whenについて

サンプルコードを提示していただきたいのですが・・・



Kotlinの`when`文は、

他の言語での`switch`文に似ていますが、

より強力で柔軟です。


以下にいくつかのサンプルコードを示します。


---


### 1. **基本的な`when`の使い方**


```kotlin


fun main() {


    val dayOfWeek = 3


    val dayName = when (dayOfWeek) {

        1 -> "Monday"

        2 -> "Tuesday"

        3 -> "Wednesday"

        4 -> "Thursday"

        5 -> "Friday"

        6 -> "Saturday"

        7 -> "Sunday"

        else -> "Invalid day"

    }


    println("Day $dayOfWeek is $dayName")

}


```


**説明**:


- `when`は`dayOfWeek`の値に応じて分岐します。


- `else`はデフォルトケースを処理するために使用します。



---


### 2. **複数の条件をまとめて処理する**


```kotlin


fun main() {


    val grade = "B"


    val result = when (grade) {

        "A", "B" -> "Excellent"

        "C", "D" -> "Good"

        "E", "F" -> "Poor"

        else -> "Unknown grade"

    }


    println("Grade $grade: $result")

}


```


**説明**:


- 複数の値 (`"A", "B"`) をカンマで区切ることで、

同じ処理にまとめることができます。


---


### 3. **条件式を使った`when`**


```kotlin


fun main() {


    val score = 75


    val grade = when {

        score >= 90 -> "A"

        score >= 80 -> "B"

        score >= 70 -> "C"

        score >= 60 -> "D"

        else -> "F"

    }


    println("Score $score gets grade $grade")

}


```


**説明**:


- 条件式 (`score >= 90` など) を使うと、

値ではなく条件に基づいて分岐が可能です。


---


### 4. **`when`を式として使用する**


```kotlin


fun main() {


    val number = 10


    val isEven = when (number % 2) {

        0 -> true

        else -> false

    }


    println("$number is even: $isEven")

}


```


**説明**:


- `when`は値を返す式として使用でき、

その結果を変数に直接代入できます。


---


### 5. **型チェックを伴う`when`**


```kotlin


fun main() {


    val obj: Any = "Hello"


    val result = when (obj) {

        is String -> "String with length ${obj.length}"

        is Int -> "Integer with value $obj"

        is Boolean -> "Boolean value $obj"

        else -> "Unknown type"

    }


    println(result)

}


```


**説明**:


- `is`を使用して型チェックが可能です。


- チェック後はその型として扱えます(例: `obj.length`)。


---


### 6. **関数で`when`を使用する**


```kotlin


fun getEmoji(emotion: String): String {


    return when (emotion) {

        "happy" -> "😊"

        "sad" -> "😢"

        "angry" -> "😠"

        else -> "😶"

    }

}



fun main() {


    println(getEmoji("happy"))  // 😊

    println(getEmoji("angry"))  // 😠

    println(getEmoji("confused"))  // 😶

}


```


**説明**:


- 関数内で`when`を使って柔軟に処理を分岐できます。


---


これらの例を参考に、

`when`の特徴や柔軟性を実際のコードに取り入れてみてください!


コメント