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