您好,登錄后才能下訂單哦!
switch是最靈活的一種控制語(yǔ)句,在使用switch時(shí)候,需要注意:
--左花括號(hào)"{"必須與switch處于同一行
--條件表達(dá)式不限制為常量或者整數(shù)
--單個(gè)case中,可以出現(xiàn)多個(gè)結(jié)果選項(xiàng)
--與C語(yǔ)言等規(guī)則相反,G0語(yǔ)言不需要break來(lái)明確退出一個(gè)case
--只有在case中明確添加fallthrough關(guān)鍵字,才會(huì)繼續(xù)執(zhí)行緊跟的下一個(gè)case
--可以不設(shè)定switch之后的條件表達(dá)式,在此種情況下,整個(gè)switch結(jié)構(gòu)與多個(gè)if....else的邏輯作用等同
--可以有任意數(shù)量的case語(yǔ)句在switch內(nèi),每個(gè)case后跟值進(jìn)行比較,以及一個(gè)冒號(hào)
--在switch語(yǔ)句中使用的表達(dá)式必須具有整體或布爾表達(dá)式,或者是一個(gè)類型,如果表達(dá)式不通過(guò),默認(rèn)值為true
--constant-expression的情況,必須是相同的數(shù)據(jù)類型,在switch的變量,它必須是一個(gè)常量或文字
--switch語(yǔ)句可有一個(gè)可選的default,它必須出現(xiàn)在switch語(yǔ)句的末尾,default可用于在沒(méi)有任何case為真時(shí)執(zhí)行任務(wù),default之后不需要break語(yǔ)句
流程圖
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的語(yǔ)句,若要讓每個(gè)case都判斷,都要在case 后面加 fallthrough
case a >= 1:
fmt.Printf("a=1")
default:
fmt.Printf("not found...")
}
}
##需要注意的是跟在switch屬于局部的變量,只能在內(nèi)部實(shí)現(xiàn)訪問(wèn),若要全局必須在switch外部
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。