C言語のgoto文の使い方

C言語にはラベルが定義されており、goto文はラベル定義位置に無条件に制御を転送します。以下はgoto文の基本的な構文です。

goto label;
...
label:
	statement;

この文法では、goto ステートメントの後にラベル(label)が続き、このラベルの後にコロンが続きます。プログラムの実行が goto ステートメントに達すると、ラベルの位置に即座に移動し、ラベルの後のステートメントを実行し続けます。

以下に、goto文を使用したプログラムの例を示します。

#include <stdio.h>

int main() {
   int i, j;

   for (i = 1; i <= 3; i++) {
      for (j = 1; j <= 3; j++) {
         printf("i = %d, j = %d\n", i, j);
         if (i == 2 && j == 2) {
            goto end;
         }
      }
   }

   end:
   printf("End of program\n");

   return 0;
}

このサンプルプログラムでは、変数iとjの値を出力するために2つのネストしたforループが使用されています。iとjの値がどちらも2のときに、gotoステートメントを使用してラベルendにジャンプし、ループを終了します。その後、プログラムはラベルendの後ろのステートメントを実行し続け、「プログラムの終わり」を出力します。

bannerAds