1 {      fmt.Println( a > 1 ..."/>
溫馨提示×

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

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

go學(xué)習(xí)--控制語(yǔ)句

發(fā)布時(shí)間:2020-09-11 07:14:06 來(lái)源:網(wǎng)絡(luò) 閱讀:291 作者:科大C2504 欄目:開(kāi)發(fā)技術(shù)
//定義變量a,a只在if語(yǔ)句中有效
if a : = 1; a > 1 { 
    fmt.Println("a > 1")
}
else {
    if a : = 10; a > 1 {
        fmt.Println(a) //結(jié)果為10,和C語(yǔ)言變量作用域一致
    }
    else {
        fmt.Println(a)
    }
}

for的三種形式
func main() {
count: = 3
    for i : = 0; i < count; i++ { //經(jīng)典形式
        fmt.Println(i)
    }

   i: = 0
       for i < count{ //類(lèi)似c中的while,只帶終止條件
           fmt.Println(i)
           i++
       }

           i = 0
           for { //死循環(huán)
               if i < count{
                   fmt.Println(i)
                   i++
               }
               else {
                   break
               }
           }
}

switch用法:
func main() {
count: = 1
    switch count{
    case 1:
        fmt.Println(count)
            fallthrough            //繼續(xù)檢查下一個(gè)case,屏蔽break功能
    case 2:
        fmt.Println(count)    //case自帶break功能
    case 3:
        fmt.Println(count)
    default:
        fmt.Println(count)
    }
}

func main() {
count: = 1
    switch { //switch不帶常量,和c中if……else if……esle作用一致
    case count == 1: //case需要使用邏輯表達(dá)式
        fmt.Println(count)
            fallthrough //繼續(xù)檢查下一個(gè)case,屏蔽break功能
    case count <= 1:
        fmt.Println(count) //case自帶break功能
    case count >= 1:
        fmt.Println(count)
    default:
        fmt.Println(count)
    }
}

break和標(biāo)簽
func main() {
J:
    for j : = 0; j < 5; j++ {
        for i : = 0; i < 10; i++ {
            if i > 6 {
                break J //標(biāo)簽J位于第一層for循環(huán),break J相當(dāng)于跳出第一層for循環(huán)
            }
            fmt.Println(i)
        }
    }
}

continue與標(biāo)簽
func main() {
J:
    for j : = 0; j < 5; j++ {
        fmt.Println("--------")
            for i : = 0; i < 10; i++ {
                if i > 6 {
                    continue J //標(biāo)簽J位于第一層for循環(huán),continue J相當(dāng)于跳過(guò)其之后的語(yǔ)句并且跳轉(zhuǎn)到第一層for繼續(xù)執(zhí)行第一層循環(huán)(第一層循環(huán)條件j的值仍然遞增)
                }
                fmt.Println(i)
            }
        fmt.Println("+++++++")    //continue的時(shí)候第一層循環(huán)體內(nèi)的語(yǔ)言也不會(huì)被執(zhí)行,注意與C的區(qū)別
    }
}

goto與標(biāo)簽
func main() {
J:
    for j : = 0; j < 5; j++ {
        fmt.Println("--------")
            for i : = 0; i < 10; i++ {
                if i > 6 {
                    goto J //goto到第一層for循環(huán),j的值被重新賦值為0,此時(shí)循環(huán)為無(wú)限循環(huán),與continue的區(qū)別在于:continue繼續(xù)執(zhí)行循環(huán),goto重新開(kāi)始循環(huán)
                }
                fmt.Println(i)
            }
        fmt.Println("+++++++")
    }
}

使用goto的時(shí)候仍然要注意,避免死循環(huán),goto盡可能到其后的代碼


向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