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`の特徴や柔軟性を実際のコードに取り入れてみてください!
コメント
コメントを投稿