Go语言分支结构

if-else if多分支语句

如果存在第三个分支,则可以使用下面这种三个独立分支的形式:

  1. if 条件表达式{
  2. // 语句体
  3. } else if 条件表达式2 {
  4. // 语句体
  5. }else {
  6. // 最终的语句体
  7. }

    if语句特殊写法

    1. func main() {
    2. const file = "goo.txt"
    3. //if条件内赋值初始化+条件表达式
    4. if content,err :=ioutil.ReadFile(file);err != nil {
    5. fmt.Println(err)
    6. } else {
    7. fmt.Printf("%s\n",content)
    8. }
    9. fmt.Println(a, b, c)
    10. }

    ReadFile()是一个带有返回值的函数,content,err :=ioutil.ReadFile(file)是一个赋值语句,执行 Connect 后,将返回值保存到 content,err变量中。
    err != nil 才是 if 的判断表达式,当 err变量不为空时,打印错误并返回。

    if语句总结

  • if语句表达式不用括号
  • if语句可以像for语句一样赋值变量
  • if条件赋值的变量作用域只在if语句代码块里

switch case语句

for语句

与多数语言不同的是,Go语言中的循环语句只支持 for 关键字,而不支持 while 和 do-while 结构,for关键字 的基本使用方法与C语言和 C++ 中非常接近:

  1. sum := 0
  2. for i := 0; i < 10; i++ {
  3. sum += i
  4. }

for关键字条件表达式不需要用圆括号()括起来,Go语言还进一步考虑到无限循环的场景,让开发者不用写无聊的 for(;;){}do{} while(1);,而直接简化为如下的写法:

一、条件语句

image.png

if语句

在Go语言中,关键字if 用于判断某个条件(布尔型或逻辑型)的语句,如果该条件成立,则会执行 if 后由大括号{}括起来的代码块,否则就忽略该代码块继续执行后续的代码。

  1. if 条件表达式 {
  2. // 语句体
  3. }

Go语言流程控制 - 图2

if-else语句

如果存在第二个分支,则可以在上面代码的基础上添加 else 关键字以及另一代码块。这个代码块中的代码只有在条件不满足时才会执行,if 和 else 后的两个代码块是相互独立的分支,只能执行其中一个。

  1. if 条件表达式 {
  2. // 语句体
  3. } else {
  4. // 语句体
  5. }

Go语言流程控制 - 图3

switch语句

二、循环语句