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可以配合標籤使用。