¿El break en Go interrumpe solo el switch/select o también el bucle externo?
¡Hola a todos! Empecé a estudiar Go recientemente y me encontré con un comportamiento inesperado del operador `break`. Tengo un bucle `for` que contiene un `switch`. Esperaba que `break` dentro del `case` interrumpiera el bucle, pero no fue así.
Aquí hay un ejemplo simplificado de mi código:
```go
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
switch i {
case 2:
fmt.Println("Encontramos 2, ¡salimos del bucle!")
break // Pensé que esto interrumpiría el for
default:
fmt.Printf("Iteración %d\n", i)
}
}
fmt.Println("El bucle terminó")
}
```
Esperaba que después de imprimir "Encontramos 2, ¡salimos del bucle!" el programa terminara el bucle e imprimiera "El bucle terminó". Sin embargo, en la práctica el programa continúa las iteraciones: 0, 1, "Encontramos 2", 3, 4 y solo luego "El bucle terminó".
Leí que en Go `break` por defecto interrumpe solo la construcción más interna `switch`, `select` o `for`. Pero en mi entendimiento, si `break` está