Go 语言入门指南:基础语法和常用特性解析5 | 青训营

78 阅读2分钟

主要是简单记录一下自己在学习Go语言基础语法中的条件语句和循环语句时遇到的一些小要点,只是个人的一个学习记录,水平不高还望大佬们包容。

条件语句

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

  • if 语句

    • if 语句由一个布尔表达式后紧跟一个或多个语句组成
    • if condition {
          // do something
      }
      
  • if...else 语句

    • if 语句后可以使用可选的 else 语句

    • else 语句中的表达式在布尔表达式为 false 时执行

    • if condition1 {
          // do something
      } else if condition2 {
          // do something else
      }else {
          // catch-all or default
      }
      
    • 注意 else 必须与右大括号在同一行

      • if x{
        }
        else { // 不与右大括号在同一行,非法代码
        }
        
  • if 嵌套语句

    • 你可以在 if 或 else if 语句中嵌入一个或多个 if 或 else if 语句
  • switch 语句

    • switch语句用于基于不同条件执行不同动作。
  • select 语句

    • select语句类似于 switch 语句
    • 但是select会随机执行一个可运行的case
    • 如果没有case可运行,它将阻塞,直到有case可运行
  • Go 没有三目运算符,所以不支持 ? : 形式的条件判断

循环语句

与大多数高级语言不同,Go语言中的循环语句只支持 for 关键字,而不支持 while 和 do-while 结构,关键字 for 的基本使用方法与C/C++语言十分类似

sum := 0
for i := 0; i < 10; i++ {
    sum += i
}
  • 可以看到比较大的一个不同在于 for 后面的条件表达式不需要用圆括号()括起来

  • Go语言还进一步考虑到无限循环的场景,让大家在写代码时不用再写一些语句如

    • for(;;){}
    • do{} while(1);
  • 可以简化为如下的写法

    • sum := 0
      for {
          sum++
          if sum > 100 {
              break
          }
      }
      
  • 左花括号{必须与 for 处于同一行

  • Go语言中的 for 循环与C语言一样,都允许在循环条件中定义和初始化变量,不过需要注意:Go语言不支持以逗号为间隔的多个赋值语句,必须使用平行赋值的方式来初始化多个变量。

  • Go语言的 for 循环同样支持 continue 和 break 来控制循环,但是它提供了一个更高级的 break,可以选择中断哪一个循环,如下例

    • for j := 0; j < 5; j++ {
          for i := 0; i < 10; i++ {
              if i > 5 {
                  break aLoop
              }
              fmt.Println(i)
          }
      }
      aLoop:
      // ...
      

附录

本文参考链接及推荐阅读:

Go 语言基础语法 | 菜鸟教程 (runoob.com)

Go语言基本语法 (biancheng.net)