首页 > 编程笔记

Go语言break的用法(入门必读)

在 Go 语言中,当程序执行 for 语句、switch 语句或 select 语句的时候,如果在特定条件下需要终止当前操作,可以使用关键字 break 实现。

在 for 语句中,如果当前条件需要终止 for 循环,使程序不再循环执行,可以在 for 语句中加入关键字 break。

在 switch 语句中,当 switch 的判断条件符合某个 case 的时候,程序将会执行 case 语句中的代码,并且终止 switch 语句,程序能终止 switch 语句是因为 case 语句中默认设置了关键字 break。

在 select 语句中,select 语句与 switch 语句实现的功能相似,但它监听通道的 IO 操作,它的 case 语句也默认设置了关键字 break。

在实际开发中,语法嵌套使用是很常见的事,比如 for 循环嵌套、for-switch 嵌套、for-select 嵌套等,如果出现多层嵌套,关键字 break 还能终止指定位置的循环变量,示例如下:
package main

import "fmt"

func main() {
    // 在最外层循环中设置标签,标签名自行修改
    for1:
    for i := 0; i < 3; i++ {
         for k := 1; k < 10; k++ {
              fmt.Printf("%v:%v\n", i, k)
              // break后加上标签名,直接终止最外层循环
              break for1
         }
    }
}
在多层语法嵌套中,若想要最内层的语句能直接终止整个嵌套,首先在语句前面添加标签,然后在关键字 break 后面添加标签名,当程序执行到关键字 break 就会终止标签的代码语句。

比如上述例子实现 for 循环嵌套,运行结果为:

0:1

最外层 for 循环设置了标签 for1,它里面嵌套了一个 for 循环,内层 for 循环在关键字 break 后面添加标签 for1,当程序执行到关键字 break 的时候,它直接终止最外层的 for 循环。

在其他编程语言中,关键字 break 只能终止当前的 for 循环,不支持越级终止,Go 语言的越级终止能简化代码并且减少代码逻辑上的混乱。

推荐阅读