Menu
CoddyTech

Switch mit `fallthrough`

Teil des Abschnitts Logik & Ablauf der GO-Journey von Coddy. Lektion 1 von 68.

In Go führen switch-Anweisungen normalerweise nur den passenden case aus und beenden sich dann automatisch. Das Schlüsselwort fallthrough ändert dieses Verhalten jedoch, indem es die Ausführung zwingend mit dem nächsten case fortsetzt, unabhängig davon, ob dieser zutrifft.

Wenn du fallthrough am Ende eines Falls verwendest, führt Go den Code des nächsten Falls aus, ohne dessen Bedingung zu prüfen. Das ist anders als bei Sprachen wie C, in denen du break benötigst, um ein Durchfallen zu verhindern.

grade := "B"
switch grade {
case "A":
    fmt.Println("Excellent!")
    fallthrough
case "B":
    fmt.Println("Good job!")
    fallthrough
case "C":
    fmt.Println("Keep trying!")
}

In diesem Beispiel werden sowohl "Good job!" als auch "Keep trying!" ausgegeben, wenn grade den Wert "B" hat, da die fallthrough-Anweisung verwendet wird. Dadurch kannst du für einen passenden Fall mehrere zusammengehörige Aktionen ausführen.

challenge icon

Aufgabe

Einfach

In dieser Herausforderung übst du, das Schlüsselwort fallthrough in einer switch-Anweisung zu verwenden, um ein Warnsystem mit Prioritäten zu erstellen. Wenn eine Warnung mit hoher Priorität ausgelöst wird, soll das System mehrere Warnmeldungen nacheinander anzeigen.

Du erhältst eine Zeichenkette als Eingabe, die eine Warnstufe darstellt. Erstelle eine switch-Anweisung, die verschiedene Warnstufen behandelt und fallthrough verwendet, um bei Warnungen mit höherer Priorität kaskadierende Meldungen anzuzeigen.

Die Eingabe ist eine dieser Warnstufen: "critical", "high", "medium" oder "low".

Deine switch-Anweisung soll wie folgt funktionieren:

  • Für "critical": Gib "CRITICAL: System shutdown imminent!" aus und falle zum Fall für „high“ durch (der wiederum zum Fall für „medium“ durchfällt)
  • Für "high": Gib "HIGH: Immediate attention required!" aus und falle durch, um auch die Meldung für die Priorität „medium“ auszugeben
  • Für "medium": Gib "MEDIUM: Please review when possible" aus
  • Für "low": Gib "LOW: Informational only" aus

Da fallthrough eine Kette bildet, gibt eine Warnung der Stufe "critical" drei Zeilen aus (CRITICAL, HIGH, MEDIUM), eine Warnung der Stufe "high" gibt zwei Zeilen aus (HIGH, MEDIUM), und "medium" sowie "low" geben jeweils eine Zeile aus.

Probier es selbst

package main

import "fmt"

func main() {
    // Eingabe einlesen
    var alertLevel string
    fmt.Scanln(&alertLevel)
    
    // TODO: Schreibe deinen Code unten
    // Erstelle eine switch-Anweisung mit fallthrough für das Warnsystem
    
}
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 & Ablauf

Übe selbstständig: Online-Go-Compiler