友情推广
break
break用于退出循环代码块或者选择器代码块。如在for循环中使用break,表示退出for循环,在select或switch中使用break,表示退出选择器代码块。如果在for,switch,select关键字以外的地方使用break关键字,在编译时将会提示下边错误信息:
break is not in a loop, switch, or select
如果循环发生嵌套,则break只会退出它所在的循环或选择器代码块,对于外层的循环或选择器代码块并不会产生影响,如下边示例:
package main
import (
"fmt"
"time"
)
func main() {
var str interface{} = "hello world"
for {
switch val := str.(type) {
case string:
fmt.Println("数据类型是:string,值是:", val)
break
fmt.Println("break是否产生作用?")
case int:
fmt.Println("数据类型是:int,值是:", val)
default:
fmt.Println("default")
}
time.Sleep(time.Second * 1)
}
fmt.Println("end")
}
输出信息是:
数据类型是:string,值是: hello world
数据类型是:string,值是: hello world
数据类型是:string,值是: hello world
......
上边的for循环会一直执行,由于break用在了switch关键字中,所有break只会退出switch选择器代码块,而不用对for循环产生影响。在输出信息中没有显示“break是否产生作用?”,这是由于break退出了当前分支,结束了选择器代码块。