Avatar ·

O break em Go interrompe apenas o switch/select ou também o loop externo?

Olá a todos! Comecei a estudar Go recentemente e me deparei com um comportamento inesperado do operador `break`. Tenho um loop `for` com um `switch` dentro. Eu esperava que o `break` dentro do `case` interrompesse o loop, mas isso não aconteceu. Aqui está um exemplo simplificado do meu código: ```go package main import "fmt" func main() { for i := 0; i < 5; i++ { switch i { case 2: fmt.Println("Encontramos 2, saindo do loop!") break // Eu pensei que isso interromperia o for default: fmt.Printf("Iteração %d\n", i) } } fmt.Println("Loop terminou") } ``` Eu esperava que, após exibir "Encontramos 2, saindo do loop!", o programa encerrasse o loop e imprimisse "Loop terminou". No entanto, na prática, o programa continua as iterações: 0, 1, "Encontramos 2", 3, 4 e só então "Loop terminou". Li que em Go o `break` por padrão interrompe apenas a construção mais interna `switch`, `select` ou `for`. Mas no meu entendimento, se o `break` estiver