Avatar ·

¿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á