溫馨提示×

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

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

go語(yǔ)言的跳轉(zhuǎn)語(yǔ)句怎么使用

發(fā)布時(shí)間:2022-12-27 14:01:33 來源:億速云 閱讀:168 作者:iii 欄目:編程語(yǔ)言

這篇文章主要介紹“go語(yǔ)言的跳轉(zhuǎn)語(yǔ)句怎么使用”,在日常操作中,相信很多人在go語(yǔ)言的跳轉(zhuǎn)語(yǔ)句怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”go語(yǔ)言的跳轉(zhuǎn)語(yǔ)句怎么使用”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

跳轉(zhuǎn)語(yǔ)句有:1、break語(yǔ)句,用于退出循環(huán)或者退出一個(gè)switch語(yǔ)句,讓程序繼續(xù)執(zhí)行循環(huán)之后的代碼,語(yǔ)法“break;”;2、continue語(yǔ)句用于退出本次循環(huán),并開始下一次循環(huán),語(yǔ)法“continue;”;3、與標(biāo)簽結(jié)合跳轉(zhuǎn)到指定的標(biāo)簽語(yǔ)句,語(yǔ)法“標(biāo)簽 + :”;4、goto語(yǔ)句,用于無條件地轉(zhuǎn)移到程序中指定的行,語(yǔ)法“goto 標(biāo)簽;... ...標(biāo)簽: 表達(dá)式;”。

break 與 continue 語(yǔ)句

和其他編程語(yǔ)言一樣,Go 語(yǔ)言支持在循環(huán)語(yǔ)句中通過 break 語(yǔ)句跳出循環(huán),通過 continue 語(yǔ)句進(jìn)入下一個(gè)循環(huán)。

關(guān)于 break 的基本使用示例我們?cè)谏掀坛讨幸呀?jīng)演示過,break 的默認(rèn)作用范圍是該語(yǔ)句所在的最內(nèi)部的循環(huán)體:

arr := [][]int{{1,2,3},{4,5,6},{7,8,9}}
for i := 0; i < 3; i++ {
    for j := 0; j < 3; j++ {
        num := arr[i][j]
        if j > 1 {
            break
        }
        fmt.Println(num)
    }
}

比如這里的 break 的含義是在 j > 1 時(shí)退出最內(nèi)部的循環(huán),否則打印當(dāng)前位置的數(shù)字。

continue 則用于忽略剩余的循環(huán)體而直接進(jìn)入下一次循環(huán)的過程:

arr := [][]int{{1,2,3},{4,5,6},{7,8,9}}
for i := 0; i < 3; i++ {
    for j := 0; j < 3; j++ {
        num := arr[i][j]
        if j > 1 {
            break
        } else {
            continue
        }
        fmt.Println(num)
    }
}

如果我們這樣改寫程序的話,上述代碼不會(huì)打印任何值,因?yàn)?continue 語(yǔ)句會(huì)忽略后續(xù)代碼直接進(jìn)入下一個(gè)循環(huán)。

標(biāo)簽

Go 語(yǔ)言的 break 和 contine 與其他語(yǔ)言的不同之處在于支持與標(biāo)簽結(jié)合跳轉(zhuǎn)到指定的標(biāo)簽語(yǔ)句,從而改變這兩個(gè)語(yǔ)句的默認(rèn)跳轉(zhuǎn)邏輯,標(biāo)簽語(yǔ)句通過標(biāo)簽 + :進(jìn)行聲明:

arr := [][]int{{1,2,3},{4,5,6},{7,8,9}}
ITERATOR1:
for i := 0; i < 3; i++ {
    for j := 0; j < 3; j++ {
        num := arr[i][j]
        if j > 1 {
            break ITERATOR1
        }
        fmt.Println(num)
    }
}

這樣一來,原本退出當(dāng)前循環(huán)體的 break 語(yǔ)句現(xiàn)在改為跳轉(zhuǎn)到 ITERATOR1 標(biāo)簽對(duì)應(yīng)的位置,所以對(duì)應(yīng)的打印結(jié)果是:

1
2

因?yàn)榇藭r(shí) break 會(huì)直接跳出外層循環(huán),如果把 break 改成 continue 則打印結(jié)果如下:

1
2
4
5
7
8

goto 語(yǔ)句

goto 語(yǔ)句被多數(shù)語(yǔ)言學(xué)者所反對(duì),告誡大家不要使用,因?yàn)楹苋菀自斐纱a邏輯混亂,進(jìn)而導(dǎo)致不易發(fā)現(xiàn)的 bug。但 Go 語(yǔ)言仍然支持 goto 關(guān)鍵字,goto 語(yǔ)句的語(yǔ)義非常簡(jiǎn)單,就是跳轉(zhuǎn)到本函數(shù)內(nèi)的某個(gè)標(biāo)簽,如:

arr := [][]int{{1,2,3},{4,5,6},{7,8,9}}

for i := 0; i < 3; i++ {
    for j := 0; j < 3; j++ {
        num := arr[i][j]
        if j > 1 {
            goto EXIT
        }
        fmt.Println(num)
    }
}   

EXIT:
fmt.Println("Exit.")

當(dāng)?shù)谝淮螡M足 j > 1 的條件時(shí),代碼就會(huì)跳轉(zhuǎn)到 EXIT 標(biāo)簽指定的位置,繼續(xù)后續(xù)代碼執(zhí)行,所以上述代碼的輸出是:

1
2
Exit.

到此,關(guān)于“go語(yǔ)言的跳轉(zhuǎn)語(yǔ)句怎么使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(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