Go言語 goto文

Go言語ループ文

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++    
   }  
}

上記の例の実行結果は次のとおりです:

a的值为 : 10
a的值为 : 11
a的值为 : 12
a的值为 : 13
a的值为 : 14
a的值为 : 16
a的值为 : 17
a的值为 : 18
a的值为 : 19

Go言語ループ文

その他の拡張