在Go语言中,break 语句用于立即退出循环或 switch 语句。当 break 被执行时,程序会立即跳出最近的 for、while(Go 中没有 while,只有 for 可以模拟 while)、do-while 循环或 switch 语句,并继续执行紧跟在该结构之后的下一条语句。
基本用法
在
for循环中使用breakfor i := 0; i < 10; i++ { if i == 5 { break // 当i等于5时,跳出循环 } fmt.Println(i) }在这个例子中,当
i达到 5 时,break语句被执行,导致循环提前结束,因此输出将是 0 到 4。在
switch语句中使用breakGo 语言的
switch语句默认情况下每个case执行后会自动break,所以通常不需要显式地写break。但是,如果你想在一个case中执行多个标签(fallthrough),则可以不使用break。switch value := 3; value { case 1: fmt.Println("Value is 1") case 2: fmt.Println("Value is 2") case 3: fmt.Println("Value is 3") fallthrough case 4: fmt.Println("Fall through to 4") default: fmt.Println("Default case") }在这个例子中,当
value是 3 时,不仅会打印 "Value is 3",还会由于fallthrough的存在而打印 "Fall through to 4"。
标签化的 break
Go 还支持标签化的 break,这允许你从嵌套的循环或结构中跳出指定的外层循环。通过给外层循环添加一个标签,然后在内层循环中使用带有相同标签的 break 语句来实现这一点。
outerLoop: // 给外层循环打上标签
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if i == 1 && j == 1 {
break outerLoop // 跳出外层循环
}
fmt.Printf("(%d, %d) ", i, j)
}
}
在这个例子中,当 i 和 j 都等于 1 时,break outerLoop 会被执行,从而直接跳出最外层的循环。输出将是 (0, 0) (0, 1) (0, 2),因为一旦 i 和 j 都是 1,循环就会停止。
这些就是 Go 语言中 break 语句的基本用法和一些高级特性。希望这能帮助你更好地理解如何在 Go 中使用 break。