Menu
Coddy logo textTech

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 Fall aus und beenden sich dann automatisch. Das Schlüsselwort fallthrough ändert dieses Verhalten jedoch, indem es die Ausführung zwingt, beim nächsten Fall fortzufahren, unabhängig davon, ob dieser übereinstimmt.

Wenn Sie fallthrough am Ende eines Case verwenden, führt Go den Code des nächsten Case aus, ohne dessen Bedingung zu prüfen. Dies unterscheidet sich von Sprachen wie C, in denen Sie break benötigen, um ein Durchlaufen 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 wird, wenn grade "B" ist, aufgrund der fallthrough-Anweisung sowohl "Good job!" als auch "Keep trying!" ausgegeben. Dies ermöglicht es Ihnen, mehrere verwandte Aktionen für einen einzelnen übereinstimmenden Fall auszuführen.

quiz iconTeste dich selbst

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

quiz iconTeste dich selbst

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

quiz iconTeste dich selbst

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

challenge icon

Aufgabe

Einfach

In dieser Herausforderung wirst du üben, das fallthrough-Schlüsselwort in einer switch-Anweisung zu verwenden, um ein Prioritäts-Alarmsystem zu erstellen. Wenn ein Alarm mit hoher Priorität ausgelöst wird, sollte das System mehrere Warnmeldungen nacheinander anzeigen.

Du erhältst eine String-Eingabe, die eine Alarmstufe darstellt. Erstelle eine switch-Anweisung, die verschiedene Alarmstufen verarbeitet und fallthrough verwendet, um kaskadierende Meldungen für Alarme mit höherer Priorität anzuzeigen.

Die Eingabe wird eine dieser Alarmstufen sein: "critical", "high", "medium" oder "low".

Deine switch-Anweisung sollte wie folgt funktionieren:

  • Für "critical": Gib "CRITICAL: System shutdown imminent!" aus und verwende fallthrough, um auch die Meldung für hohe Priorität auszugeben
  • Für "high": Gib "HIGH: Immediate attention required!" aus und verwende fallthrough, um auch die Meldung für mittlere Priorität auszugeben
  • Für "medium": Gib "MEDIUM: Please review when possible" aus
  • Für "low": Gib "LOW: Informational only" aus

Verwende das fallthrough-Schlüsselwort, sodass kritische Alarme sowohl die kritische als auch die Meldung für hohe Priorität anzeigen, und Alarme mit hoher Priorität sowohl die Meldung für hohe als auch für mittlere Priorität anzeigen.

Spickzettel

Das Schlüsselwort fallthrough in Go-switch-Anweisungen erzwingt die Fortsetzung der Ausführung beim nächsten Case, ohne dessen Bedingung zu prüfen:

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

Wenn grade den Wert "B" hat, werden aufgrund der fallthrough-Anweisung sowohl "Good job!" und "Keep trying!" ausgegeben. Im Gegensatz zu Sprachen wie C werden Go-switch-Anweisungen nach einem passenden Case automatisch beendet, sofern kein fallthrough verwendet wird.

Probier es selbst

package main

import "fmt"

func main() {
    // Eingabe lesen
    var alertLevel string
    fmt.Scanln(&alertLevel)
    
    // TODO: Schreiben Sie Ihren Code unten
    // Erstellen Sie eine Switch-Anweisung mit Fallthrough für das Alarmsystem
    
}
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