Menu
Coddy logo textTech

Ranges in Switch

Teil des Abschnitts Logik & Kontrollfluss der Swift-Journey von Coddy — Lektion 10 von 56.

Du hast switch mit Bereichen in den Grundlagen verwendet. Derselbe Trick lässt sich auf echte Klassifizierungsprobleme skalieren, bei denen jeder Fall einen Wertebereich abdeckt.

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")
}
// warm

Der erste case ..<0 verwendet die einseitige Bereichsform: „jeder Wert, der strikt kleiner als 0 ist“. Sie können auch 0... verwenden, um „0 oder größer“ auszudrücken.

Die Fälle werden von oben nach unten geprüft und der erste Treffer gewinnt. Ordnen Sie sie daher von niedrig nach hoch (oder verwenden Sie default für den Catch-all).

challenge icon

Aufgabe

Anfänger

Lies eine einzelne Ganzzahl von der Eingabe: eine Temperatur in Celsius. Gib eine dieser Bezeichnungen unter Verwendung eines einzelnen switch mit Bereichs-Cases aus:

  • Unter 0 (negative Zahlen): freezing
  • 0...9: cold
  • 10...19: mild
  • 20...29: warm
  • 30...39: hot
  • 40 und darüber: scorching

Für die Eingabe 22 ist die Ausgabe warm.

Spickzettel

Verwenden Sie switch mit Bereichs-Cases (range cases), um Werte zu klassifizieren. Die Cases werden von oben nach unten geprüft; die erste Übereinstimmung gewinnt.

let temp = 22
switch temp {
case ..<0:        print("freezing")   // einseitig: alles unter 0
case 0..<10:      print("cold")
case 10..<20:     print("mild")
case 20..<30:     print("warm")
default:          print("hot")        // Auffangwert (catch-all)
}
// warm
  • ..<0 — einseitiger Bereich: jeder Wert, der strikt kleiner als 0 ist
  • 40... — einseitiger Bereich: 40 oder größer
  • Ordnen Sie die Cases von niedrig nach hoch; verwenden Sie default für den verbleibenden Auffangwert

Probier es selbst

let temp = Int(readLine()!)!

// TODO: switch auf temp mit Bereichen anwenden, das entsprechende Label ausgeben
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Kontrollfluss