Avatar ·

Unterbricht break in Go nur switch/select oder auch die äußere Schleife?

Hallo zusammen! Ich habe vor kurzem angefangen, Go zu lernen, und bin auf ein unerwartetes Verhalten des `break`-Statements gestoßen. Ich habe eine `for`-Schleife, in der sich ein `switch` befindet. Ich erwartete, dass `break` innerhalb eines `case` die Schleife unterbricht, aber das ist nicht passiert. Hier ist ein vereinfachtes Beispiel meines Codes: ```go package main import "fmt" func main() { for i := 0; i < 5; i++ { switch i { case 2: fmt.Println("2 gefunden, Schleife verlassen!") break // Ich dachte, das unterbricht die for-Schleife default: fmt.Printf("Iteration %d\n", i) } } fmt.Println("Schleife beendet") } ``` Ich erwartete, dass das Programm nach der Ausgabe "2 gefunden, Schleife verlassen!" die Schleife beendet und "Schleife beendet" ausgibt. In der Praxis setzt das Programm jedoch die Iterationen fort: 0, 1, "2 gefunden", 3, 4 und erst dann "Schleife beendet". Ich habe gelesen, dass `break` in Go standardmäßig nur die innerste `switch`-, `select`- oder `for`-Konstruktion unterbricht. Aber meinem Verständnis nach, wenn `break` sich