1. 程式人生 > >golang跳轉語句goto,break,continue的使用及區別

golang跳轉語句goto,break,continue的使用及區別

goto

goto語句可以無條件地轉移到過程中指定的行。
通常與條件語句配合使用。可用來實現條件轉移, 構成迴圈,跳出迴圈體等功能。
在結構化程式設計中一般不主張使用goto語句, 以免造成程式流程的混亂
goto對應(標籤)既可以定義在for迴圈前面,也可以定義在for迴圈後面,當跳轉到標籤地方時,繼續執行標籤下面的程式碼。

func main() {
    //  放在for前面,此例會一直迴圈下去
    Loop:
    fmt.Println("test")
    for a:=0;a<5;a++{
        fmt.Println(a)
        if a>3{
            goto Loop
        }
    }
}

func main() {
    for a:=0;a<5;a++{
        fmt.Println(a)
        if a>3{
            goto Loop
        }
    }
    Loop:           //放在for後邊
    fmt.Println("test")
}

break

func main() {
    Loop:
    for j:=0;j<3;j++{
        fmt.Println(j)
        for a:=0;a<5;a++{
            fmt.Println(a)
            if a>3{
                break Loop
            }
        }
    }
}
//在沒有使用loop標籤的時候break只是跳出了第一層for迴圈
//使用標籤後跳出到指定的標籤,break只能跳出到之前,如果將Loop標籤放在後邊則會報錯
//break標籤只能用於for迴圈,跳出後不再執行標籤對應的for迴圈    

continue

continue和標籤的使用類似於break,這裡不再詳述

總結

goto語句本身就是做跳轉用的,而break和continue是配合for使用的。所以goto的使用不限於for,通常與條件語句配合使用
在for迴圈中break和continue可以配合標籤使用。