goto語句
在Go程式設計語言中的goto語句提供無條件跳轉從跳轉到标記聲明的功能。
注意:使用goto語句是高度勸阻的在任何程式設計語言,因為它使得難以跟蹤程式的控制流程,使程式難以了解,難以修改。使用一個goto任何程式可以改寫,以便它不需要goto。
文法
轉到goto語句的文法如下:
goto label;
..
.
label: statement;
在這裡,标簽(label)可以是除去關鍵字任何純文字,它可以在任何地方設定在Go程式的上方或下方,以使用goto語句。
流程圖:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yMwYDNhRGZyMmZ3EDN2EmY2MDZjNjY0UWY1YmZ2MTN58CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
例子:
package main
import "fmt"
func main() {
var a int = 10
LOOP: for a < 20 {
if a == 15 {
a = a + 1
goto LOOP
}
fmt.Printf("value of a: %d\n", a)
a++
}
}
讓我們編譯和運作上面的程式,這将産生以下結果:
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 16
value of a: 17
value of a: 18
value of a: 19
無限循環
一個循環變得無限循環,如果條件永遠不會為假。 for循環是傳統上用于此目的。由于沒有形成for循環是必需的三個表達式中,可以通過離開條件,使用空表達式或傳遞true給它形成一個死循環。
package main
import "fmt"
func main() {
for true {
fmt.Printf("This loop will run forever.\n");
}
}
當條件表達式為不存在,它被假定為真。你可能有一個初始化和增量的表達,但C程式員更普遍使用for(;;)結構來表示一個無限循環。
注意:您可以通過按Ctrl+ C鍵終止無限循環。