Grundlegende Syntax
Die Syntax der switch-Verzweigung ähnelt der der if-Verzweigung, da beide auf Bedingungsprüfungen basieren. Die grundlegende Struktur sieht wie folgt aus:
switch condition {
case val1:
// Codeblock
case val2:
// Codeblock
...
default:
// Codeblock
}
Die Bedingung (condition) kann ein beliebiger Ausdruckstyp sein. Wenn die Bedingung mit dem Wert einer bestimmten case-Anweisung übereinstimmt, wird der entsprechende Codeblock ausgeführt und das Programm verlässt anschließend die aktuelle switch-Verzweigung.
Die Werte in den case-Anweisungen müssen denselben Typ haben wie der Bedingungsausdruck.
Das Programm wertet die case-Anweisungen von oben nach unten aus und führt den ersten passenden Treffer aus. Nach Abschluss der Ausführung wird die switch-Struktur beendet.
Die default-Anweisung verhält sich ähnlich wie der else-Zweig. Wenn keine der case-Anweisungen auf die Bedingung zutrifft, wird der Code unter default ausgeführt.
Schauen wir uns ein Beispiel für eine Wettervorhersage an. Erstellen Sie eine neue Datei namens switch.go und schreiben Sie den folgenden Code:
cd ~/project
touch switch.go
package main
import (
"fmt"
)
func main() {
// Heutiges Wetter
weather := "rainy"
switch weather {
case "snow":
fmt.Println("Remember to wear a scarf today.🧣")
case "rainy":
fmt.Println("Remember to bring an umbrella today.🌂")
default:
fmt.Println("Today is sunny.☀")
}
}
Führen Sie den Code aus:
go run switch.go
Die Ausgabe lautet:
Remember to bring an umbrella today.🌂
Diese Wettervorhersage gibt je nach Wetterlage unterschiedliche Ergebnisse aus. Zuerst setzen wir das heutige Wetter auf "rainy". In der folgenden switch-case-Verzweigung haben wir drei Bedingungen definiert: Bei Schnee erinnern wir an den Schal, bei Regen an den Regenschirm, und in allen anderen Fällen gehen wir von einem sonnigen Tag aus.