0Pricing
Go Academy · Lektion

switch-Anweisungen in Go

switch mit und ohne Tag sowie fallthrough

switch-Anweisungen in Go ist eine kostenlose Go Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Go Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.

Grundlagen von switch

Go's switch ist leistungsfähiger als in C: Standardmäßig gibt es kein Fall-through, und Fälle können mehrere Werte enthalten:

day := "Monday"
switch day {
case "Saturday", "Sunday":
    fmt.Println("Weekend")
default:
    fmt.Println("Weekday")
}

Kein implizites Fall-through

In Go wird jeder case-Block automatisch beendet – anders als in C, wo Sie break ausdrücklich schreiben müssen:

  • Übersichtlicherer Code und weniger Fehler
  • Verwenden Sie fallthrough ausdrücklich, wenn Sie ein Verhalten wie in C benötigen (selten)

switch mit Init-Anweisung

Wie if akzeptiert auch switch eine optionale Init-Anweisung:

switch os := runtime.GOOS; os {
case "linux":
    fmt.Println("Linux")
case "darwin":
    fmt.Println("macOS")
default:
    fmt.Printf("Other: %s\n", os)
}

Tagloses switch (Alternative zu einer if-else-Kette)

Ein tagloses switch hat nach dem Schlüsselwort keinen Ausdruck – jeder case wertet einen booleschen Ausdruck aus:

score := 75
switch {
case score >= 90:
    fmt.Println("A")
case score >= 80:
    fmt.Println("B")
case score >= 70:
    fmt.Println("C")
default:
    fmt.Println("F")
}

Type Switch

Ein Type Switch untersucht den dynamischen Typ eines Interface-Werts:

func describe(i interface{}) {
    switch v := i.(type) {
    case int:
        fmt.Printf("int: %d\n", v)
    case string:
        fmt.Printf("string: %s\n", v)
    default:
        fmt.Printf("unknown: %T\n", v)
    }
}

fallthrough

Verwenden Sie fallthrough, um unabhängig von dessen Bedingung ausdrücklich den nächsten case-Block auszuführen (nur selten erforderlich):

n := 1
switch n {
case 1:
    fmt.Println("one")
    fallthrough
case 2:
    fmt.Println("one or two")
}

Mehrere Werte pro Case

Listen Sie mehrere durch Kommas getrennte Werte in einem einzigen case auf:

func isVowel(c byte) bool {
    switch c {
    case 'a', 'e', 'i', 'o', 'u':
        return true
    }
    return false
}

switch oder if-else

Verwenden Sie switch, wenn:

  • Sie einen Ausdruck mit vielen Werten vergleichen
  • Sie einen Type Switch für die Auswahl anhand eines Interface-Typs benötigen
  • die Lesbarkeit gegenüber einer Kette aus if-else verbessert wird

Verwenden Sie if-else, wenn es sich um unterschiedliche boolesche Ausdrücke handelt.

break in switch

Um ein switch vorzeitig zu verlassen, verwenden Sie break. Um eine äußere Schleife aus einem switch heraus zu verlassen, verwenden Sie ein Break mit Label:

loop:
for {
    switch input() {
    case "quit":
        break loop  // exits the for loop
    }
}

Standardfall

Der default-Fall wird ausgeführt, wenn kein anderer Fall übereinstimmt. Bewährte Vorgehensweisen:

  • Fügen Sie bei der Verarbeitung von Aufzählungen immer default ein, um unerwartete Werte abzufangen
  • Platzieren Sie ihn für eine bessere Lesbarkeit am Ende
  • Verwenden Sie in Type Switches default, um nicht unterstützte Typen kontrolliert zu behandeln

Kurze Überprüfung

Was geschieht in Go, wenn ein switch-Fall übereinstimmt – wird die Ausführung mit dem nächsten Fall fortgesetzt?

Zusammenfassung: switch in Go

Go's switch ist übersichtlich und leistungsfähig:

  • Kein implizites Fall-through – verwenden Sie fallthrough ausdrücklich
  • Init-Anweisung zum Beschränken temporärer Variablen
  • Tagloses switch als Alternative zu einer if-else-Kette
  • Type Switch für die Auswahl anhand eines Interface-Typs
  • Mehrere Werte pro Fall, durch Kommas getrennt

Als Nächstes: Schleifensteuerung mit break, continue und Labels.

Häufig gestellte Fragen

Ist die Lektion „switch-Anweisungen in Go“ kostenlos?

Ja — der vollständige Text von „switch-Anweisungen in Go“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Go Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „switch-Anweisungen in Go“?

switch mit und ohne Tag sowie fallthrough Du übst Go Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Go Academy zu starten?

Keine Vorkenntnisse erforderlich. Go Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „switch-Anweisungen in Go“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Go Academy-Lektion Code schreiben und ausführen?

Ja. Jede Go Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. if-Anweisungen und Init-Ausdrücke
  2. Die for-Schleife: alle Varianten
  3. switch-Anweisungen in Go
  4. break, continue und Labels
← Zurück zu Go Academy