Menu
Coddy logo textTech

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 を使用します)。

challenge icon

チャレンジ

初心者

入力から単一の整数、つまり摂氏温度を読み取ります。範囲ケースを使用する単一の switch で、次のラベルのいずれかを出力します:

  • 0 未満(負の値):freezing
  • 0...9cold
  • 10...19mild
  • 20...29warm
  • 30...39hot
  • 40 以上:scorching

入力が 22 の場合、出力は warm です。

自分で試してみよう

let temp = Int(readLine()!)!

// TODO: 範囲を使って temp を switch し、一致するラベルを出力する
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン

自分で練習してみよう: Swiftプレイグラウンド