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