Switch文でのRange
CoddyのSwiftジャーニー「ロジックとフロー」セクションの一部。レッスン 10/56。
基礎編ではswitchとrangesを使いました。同じ手法は、各caseが値の範囲を担当する実際の分類問題にも応用できます。
let temp = 22
switch temp {
case ..<0: print("freezing")
case 0..<10: print("cold")
case 10..<20: print("mild")
case 20..<30: print("warm")
default: print("hot")
}
// 暖かい最初の case ..<0 は、片側範囲形式、つまり「0 未満の任意の値」を使用しています。0... を使って「0 以上」を表すこともできます。
ケースは上から順にチェックされ、最初に一致したものが適用されるため、低いものから高いものの順に並べます(または、すべてに対応する場合は default を使用します)。
チャレンジ
初心者入力から単一の整数、つまり摂氏温度を読み取ります。範囲ケースを使用する単一の switch で、次のラベルのいずれかを出力します:
0未満(負の値):freezing0...9:cold10...19:mild20...29:warm30...39:hot40以上:scorching
入力が 22 の場合、出力は warm です。
自分で試してみよう
let temp = Int(readLine()!)!
// TODO: 範囲を使って temp を switch し、一致するラベルを出力する
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
自分で練習してみよう: Swiftプレイグラウンド