溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

go語(yǔ)言switch語(yǔ)句用法

發(fā)布時(shí)間:2020-10-02 11:07:03 來(lái)源:網(wǎng)絡(luò) 閱讀:578 作者:DBAspace 欄目:編程語(yǔ)言

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ǔ)句

流程圖

go語(yǔ)言switch語(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外部

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI