Go言語 goto文
Go言語のgoto文は、無条件に処理内の指定された行へ移動できます。
goto文は通常、条件文と組み合わせて使用されます。条件分岐の実現、ループの構成、ループ本体からの脱出などの機能を実現するために使用できます。
しかし、構造化プログラミングでは、プログラムの流れを混乱させ、プログラムの理解やデバッグを困難にすることを避けるため、一般的にgoto文の使用は推奨されません。
構文
goto構文の形式は次のとおりです:
goto label; .. . label: statement;
goto文のフローチャートは次のとおりです:

例
変数aが15のとき、今回のループをスキップして、ループ開始文のLOOPの位置に戻ります:
例
package main
import "fmt"
func main() {
/* ローカル変数を定義 */
var a int = 10
/* ループ */
LOOP: for a < 20 {
if a == 15 {
/* 反復をスキップ */
a = a + 1
goto LOOP
}
fmt.Printf("aの値は : %d\n", a)
a++
}
}
import "fmt"
func main() {
/* ローカル変数を定義 */
var a int = 10
/* ループ */
LOOP: for a < 20 {
if a == 15 {
/* 反復をスキップ */
a = a + 1
goto LOOP
}
fmt.Printf("aの値は : %d\n", a)
a++
}
}
上記の例の実行結果は次のとおりです:
a的值为 : 10 a的值为 : 11 a的值为 : 12 a的值为 : 13 a的值为 : 14 a的值为 : 16 a的值为 : 17 a的值为 : 18 a的值为 : 19その他の拡張