範囲指定を用いた switch 文
CoddyのSwiftジャーニー「基礎」セクションの一部 — レッスン 30/86。
個別の値の代わりに範囲(ranges)を使用すると、switch文はさらに強力になります。これは、スコアを成績に変換するなど、数値をグループに分類するのに最適です。
let score = 85
switch score {
case 90...100:
print("A")
case 80..<90:
print("B")
case 70..<80:
print("C")
case 60..<70:
print("D")
default:
print("F")
}... 演算子は、両端の値を含む閉範囲を作成します。そのため、90...100 は 90、91、そして 100 までのすべての値に一致します。..< 演算子は、上限を除外する半開範囲を作成します。つまり、80..<90 は 80 から 89 までに一致します。
Swiftは各ケースを順番にチェックし、最初に一致したものを実行します。スコアが85なので、80..<90の範囲に該当し、"B"が出力されます。このアプローチは、比較演算子を使って複数のelse if条件を書くよりもずっとすっきりしています。
チャレンジ
簡単age を受け取り、年齢範囲に基づいてライフステージのカテゴリを返す関数 getAgeCategory を作成してください。
範囲(range)を持つ switch 文を使用して、年齢を 5 つのライフステージのいずれかに分類してください。
条件:
0...2-"Infant"を返します3...12-"Child"を返します13...19-"Teenager"を返します20...64-"Adult"を返します65...120-"Senior"を返します- その他の値 -
"Invalid age"を返します
パラメータ:
age(Int): その人の年齢
戻り値: String としてのライフステージのカテゴリ
チートシート
Switch文では、特定の範囲内の値に一致させるために範囲(ranges)を使用できます:
let score = 85
switch score {
case 90...100:
print("A")
case 80..<90:
print("B")
case 70..<80:
print("C")
default:
print("F")
}...演算子は、両端の値を含む閉範囲(closed range)を作成します(例:90...100は90から100に一致します)。
..<演算子は、上限を含まない半開範囲(half-open range)を作成します(例:80..<90は80から89に一致します)。
Swiftは各ケースを順番にチェックし、最初に一致したものを実行します。
自分で試してみよう
func getAgeCategory(age: Int) -> String {
// ここにコードを記述してください
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。