編程學習網 > 編程語言 > go > 2020 重學 Go 系列:10. Go語言流程控制:if-else? 條件語句
2020
03-17

2020 重學 Go 系列:10. Go語言流程控制:if-else? 條件語句


1.  條件語句模型

Go里的流程控制方法還是挺豐富,整理了下有如下這么多種:

  • if - else 條件語句
  • switch - case 選擇語句
  • for - range 循環語句
  • goto 無條件跳轉語句
  • defer 延遲執行

今天先來講講 if-else 條件語句

Go 里的條件語句模型是這樣的

if 條件 1 {
  分支 1else if 條件 2 {
  分支 2else if 條件 ... {
  分支 ...
} else {
  分支 else }

Go編譯器,對于 {  } 的位置有嚴格的要求,它要求 else if (或 else)和 兩邊的花括號,必須在同一行。

由于 Go是 強類型,所以要求你條件表達式必須嚴格返回布爾型的數據(nil 和 0 和 1 都不行,具體可查看《詳解數據類型:字典與布爾類型》)。

對于這個模型,分別舉幾個例子來看一下。

2. 單分支判斷

只有一個 if ,沒有 else

import "fmt" func main() {
    age := 20     if age > 18 {
        fmt.Println("已經成年了")
    } 
}

如果條件里需要滿足多個條件,可以使用 &&  ||

  • &&:表示且,左右都需要為true,最終結果才能為 true,否則為 false
  • ||:表示或,左右只要有一個為true,最終結果即為true,否則 為 false
import "fmt" func main() {
    age := 20     gender := "male"     if (age > 18 && gender == "male") {
        fmt.Println("是成年男性")
    }
}

3. 多分支判斷

if - else 語句

import "fmt" func main() {
    age := 20     if age > 18 {
        fmt.Println("已經成年了")
    } else {
        fmt.Println("還未成年")
    }
}

if - else if - else 語句

import "fmt" func main() {
    age := 20     if age > 18 {
        fmt.Println("已經成年了")
    } else if age >12 {
        fmt.Println("已經是青少年了")
    } else {
        fmt.Println("還不是青少年")
    }
}

4. 高級寫法

在 if 里可以允許先運行一個表達式,取得變量后,再對其進行判斷,比如第一個例子里代碼也可以寫成這樣

import "fmt" func main() {
    if age := 20;age > 18 {
        fmt.Println("已經成年了")
    }
}

掃碼二維碼 獲取免費視頻學習資料

Python編程學習

查 看2022高級編程視頻教程免費獲取