Skip to content

流程控制

  • 条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。

if 语句

  • if 语句由一个布尔表达式后紧跟一个或多个语句组成。
go
if 布尔表达式 {
   /* 在布尔表达式为 true 时执行 */
}

if...else 语句

  • if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。
go
if 布尔表达式 {
   /* 在布尔表达式为 true 时执行 */
}else {
   /* 在布尔表达式为 false 时执行 */
}

嵌套语句

  • 你可以在 ifelse if 语句中嵌入一个或多个 ifelse 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:
    // 所有通道都没有准备好,执行的代码
}