Go中的break是只中断switch/select还是也中断外部循环?
大家好!我最近开始学习Go,遇到了`break`语句的意外行为。我有一个`for`循环,里面有一个`switch`。我原以为`case`中的`break`会中断循环,但并没有发生。
以下是我的简化代码示例:
```go
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
switch i {
case 2:
fmt.Println("找到2,退出循环!")
break // 我以为这会中断for
default:
fmt.Printf("迭代 %d\n", i)
}
}
fmt.Println("循环结束")
}
```
我期望在输出"找到2,退出循环!"后程序结束循环并打印"循环结束"。但实际上程序继续迭代:0、1、"找到2"、3、4,然后才打印"循环结束"。
我了解到在Go中,`break`默认只中断最内层的`switch`、`select`或`for`结构。但我的理解是,如果`break`位于