本文首發自「慕課網」,想了解更多IT干貨內容,程序員圈內熱聞,歡迎關注!
作者|慕課網精英講師 Codey
本文主要學習 Go 語言中的分支語句。一共要介紹的有兩個,分別是 if…else 和 switch…case。他們二者在 Go 語言中都做了新的功能拓展。
1. if…elseTips:其中還有一個分支語句 select…case 我們將在 Go 語言的通道中介紹。
在 Go 語言中 if 關鍵字的作用和其它大部分語言相同,是用于測試某個布爾表達式或布爾值是否為真的。若為真則執行 if 之后 {} 中的語句,否則跳過這些語句。如果存在第二個分支,則需要使用 else 關鍵字,還需要增加分支的話就需要使用 else if 關鍵字了。
示例代碼:
package mainimport "fmt"func main() { a := 10 if a > 10 { fmt.Println("a大于10") } else if a < 0 { fmt.Println("a小于0") } else { fmt.Println("a的值是", a) }}代碼塊1234567891011121314
輸出結果:
在 Go 語言中,if 后的條件表達式,還有一種特別的寫法,可以在條件表達式之前寫一個賦值表達式。
if…else 的特殊用法:
package mainimport "fmt"func main() { if a := 10; a > 10 { //賦值表達式和條件表達式之間使用;隔開 fmt.Println("a大于10") } else { fmt.Println("a的值是", a) }}代碼塊1234567891011
執行結果:
2. switch…caseGo 語言對 switch…case 的功能進行了擴展,它變得更加的通用。switch 之后可以什么都不帶。case 也無需是一個固定值,也可以是一個布爾表達式,而且每一個 case 都是一個 獨立的代碼塊,執行完了之后立刻跳出 switch,不需要使用 break。所以可以把 if…else 完美的改寫成 switch…case 的形式。
Tips:還有一種 switch 語句叫做 type switch,我們將在學習接口時介紹它
switch…case 傳統用法代碼示例:
package mainimport "fmt"func main() { a := "A" switch a { case "A", "a": fmt.Println("分數區間為90~100") case "B", "b": fmt.Println("分數區間為70~89") case "C", "c": fmt.Println("分數區間為0~70") default: fmt.Println("錯誤的評分") }}代碼塊1234567891011121314151617
輸出結果:
switch…case Go 語言中的新用法:
package mainimport "fmt"func main() { a := 50 switch { case a < 60: fmt.Println("不及格") case a < 80: fmt.Println("良好") case a <= 100: fmt.Println("優秀") default: fmt.Println("分數最多為100分") }}代碼塊1234567891011121314151617
輸出結果:
3. 小結本文主要學習了 Go 語言中的分支結構,其中需要注意的是在 Go 語言中的特殊寫法:
歡迎關注「慕課網」,發現更多IT圈優質內容,分享干貨知識,幫助你成為更好的程序員!