switch是最靈活的一種控制語句,在使用switch時(shí)候,需要注意:
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了鼓樓免費(fèi)建站歡迎大家使用!
--左花括號(hào)"{"必須與switch處于同一行
--條件表達(dá)式不限制為常量或者整數(shù)
--單個(gè)case中,可以出現(xiàn)多個(gè)結(jié)果選項(xiàng)
--與C語言等規(guī)則相反,G0語言不需要break來明確退出一個(gè)case
--只有在case中明確添加fallthrough關(guān)鍵字,才會(huì)繼續(xù)執(zhí)行緊跟的下一個(gè)case
--可以不設(shè)定switch之后的條件表達(dá)式,在此種情況下,整個(gè)switch結(jié)構(gòu)與多個(gè)if....else的邏輯作用等同
--可以有任意數(shù)量的case語句在switch內(nèi),每個(gè)case后跟值進(jìn)行比較,以及一個(gè)冒號(hào)
--在switch語句中使用的表達(dá)式必須具有整體或布爾表達(dá)式,或者是一個(gè)類型,如果表達(dá)式不通過,默認(rèn)值為true
--constant-expression的情況,必須是相同的數(shù)據(jù)類型,在switch的變量,它必須是一個(gè)常量或文字
--switch語句可有一個(gè)可選的default,它必須出現(xiàn)在switch語句的末尾,default可用于在沒有任何case為真時(shí)執(zhí)行任務(wù),default之后不需要break語句
流程圖
egg1:
package main
import "fmt"
func main() {
var grade string = "A"
switch {
case grade == "A":
fmt.Printf("Good....\n")
case grade == "B":
fmt.Printf("Well Done....\n")
case grade == "C":
fmt.Printf("Ok....")
default:
fmt.Printf("iNVALID grade....\n")
}
fmt.Printf("Your grade is %s\n", grade)
}
egg2:
package main
import "fmt"
func main() {
switch a := 1; {
case a >= 0:
fmt.Printf("a>=0")
fallthrough //如果不加這個(gè)只會(huì)打印a>=0,不會(huì)執(zhí)行后面的a>=1的語句,若要讓每個(gè)case都判斷,都要在case 后面加 fallthrough
case a >= 1:
fmt.Printf("a=1")
default:
fmt.Printf("not found...")
}
}
##需要注意的是跟在switch屬于局部的變量,只能在內(nèi)部實(shí)現(xiàn)訪問,若要全局必須在switch外部