8. Go 語言流程控制:if-else

Hi,你們好,我是明哥。git

在本身學習 Golang 的這段時間裏,我寫了詳細的學習筆記放在個人我的微信公衆號 《Go編程時光》,對於 Go 語言,我也算是個初學者,所以寫的東西應該會比較適合剛接觸的同窗,若是你也是剛學習 Go 語言,不防關注一下,一塊兒學習,一塊兒成長。github

個人在線博客:golang.iswbm.com 個人 Github:github.com/iswbm/GolangCodingTimegolang


1. 條件語句模型

Go裏的流程控制方法仍是挺豐富,整理了下有以下這麼多種:編程

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

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

Go 裏的條件語句模型是這樣的微信

if 條件 1 {
  分支 1
} else if 條件 2 {
  分支 2
} else if 條件 ... {
  分支 ...
} else {
  分支 else
}複製代碼

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

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

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

2. 單分支判斷

只有一個 if ,沒有 else3d

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("已經成年了")
    }
}複製代碼

系列導讀

01. 開發環境的搭建(Goland & VS Code)

02. 學習五種變量建立的方法

03. 詳解數據類型:**整形與浮點型**

04. 詳解數據類型:byte、rune與string

05. 詳解數據類型:數組與切片

06. 詳解數據類型:字典與布爾類型

07. 詳解數據類型:指針

08. 面向對象編程:結構體與繼承

09. 一篇文章理解 Go 裏的函數

10. Go語言流程控制:if-else 條件語句

11. Go語言流程控制:switch-case 選擇語句

12. Go語言流程控制:for 循環語句

13. Go語言流程控制:goto 無條件跳轉

14. Go語言流程控制:defer 延遲調用

15. 面向對象編程:接口與多態

16. 關鍵字:make 和 new 的區別?

17. 一篇文章理解 Go 裏的語句塊與做用域

18. 學習 Go 協程:goroutine

19. 學習 Go 協程:詳解信道/通道

20. 幾個信道死鎖經典錯誤案例詳解

21. 學習 Go 協程:WaitGroup

22. 學習 Go 協程:互斥鎖和讀寫鎖

23. Go 裏的異常處理:panic 和 recover

24. 超詳細解讀 Go Modules 前世此生及入門使用

25. Go 語言中關於包導入必學的 8 個知識點

26. 如何開源本身寫的模塊給別人用?

27. 說說 Go 語言中的類型斷言?

28. 這五點帶你理解Go語言的select用法


相關文章
相關標籤/搜索