範囲を使ったWhen
CoddyのKotlinジャーニー「基礎」セクションの一部。レッスン 33/93。
特定の値と一致するかどうかではなく、値が範囲内にあるかどうかを確認する必要がある場合があります。when式では、範囲とinキーワードを組み合わせてこれを行えます。
fun main() {
val score = 85
val grade = when (score) {
in 90..100 -> "A"
in 80..89 -> "B"
in 70..79 -> "C"
in 60..69 -> "D"
else -> "F"
}
println(grade) // 出力: B
}in キーワードは、指定された範囲内に値が存在するかどうかを確認します。ここでは、85 は 80..89 の範囲内にあるため、成績は「B」です。各条件で score >= 80 && score <= 89 と記述するよりも、はるかにすっきりしています。
同じwhen式の中で、範囲と特定の値を組み合わせることもできます:
fun main() {
val age = 17
val category = when (age) {
0 -> "Newborn"
in 1..12 -> "Child"
in 13..19 -> "Teenager"
else -> "Adult"
}
println(category) // 出力: Teenager
}範囲を使うと、連続した数値条件を扱う際にコードがより読みやすくなります。これは、成績評価システムや年齢区分などのシナリオでよく見られます。
チャレンジ
簡単age を受け取り、その人の年齢区分に基づいてチケット料金を返す関数 getTicketPrice を作成してください。
範囲を指定した when 式を使用して、適切なチケット料金を決定してください。
条件:
- 年齢
0~3:0を返す(無料) - 年齢
4~12:10を返す(子ども料金) - 年齢
13~17:15を返す(ティーン料金) - 年齢
18~64:25を返す(大人料金) - 年齢
65以上:12を返す(シニア料金)
パラメーター:
age(Int):その人の年齢
戻り値: 整数(Int)としてのチケット料金
自分で試してみよう
fun getTicketPrice(age: Int): Int {
// ここにコードを書いてください
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド