Appearance
流程控制
- 条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。
if 语句
- if 语句由一个布尔表达式后紧跟一个或多个语句组成。
go
if 布尔表达式 {
/* 在布尔表达式为 true 时执行 */
}if...else 语句
if语句 后可以使用可选的else语句,else语句中的表达式在布尔表达式为 false 时执行。
go
if 布尔表达式 {
/* 在布尔表达式为 true 时执行 */
}else {
/* 在布尔表达式为 false 时执行 */
}嵌套语句
- 你可以在
if或else if语句中嵌入一个或多个if或else if语句。
go
if 布尔表达式 1 {
/* 当布尔表达式 1 为 true 时执行 */
if 布尔表达式 2 {
/* 当布尔表达式 2 为 true 时执行 */
}
}switch 语句
switch语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上直下逐一测试,直到匹配为止。switch默认在case后面加了break。- 使用
fallthrough会强制执行后面的 case 语句,fallthrough不会判断下一条 case 的表达式结果是否为 true。
go
switch var1 {
case val1:
...
fallthrough
case val2:
...
default:
...
}select 语句
- select 是 Go 中的一个控制结构,类似于用于通信的 switch 语句。
- 每个case必须是一个chanel操作,要么是发送要么是接收。
- select 随机执行一个可运行的 case。如果没有 case 可运行,它将阻塞,直到有 case 可运行。一个默认的子句应该总是可运行的。
go
select {
case <- channel1:
// 执行的代码
case value := <- channel2:
// 执行的代码
case channel3 <- value:
// 执行的代码
// 你可以定义任意数量的 case
default:
// 所有通道都没有准备好,执行的代码
}