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