機能 |
無条件跳躍を表す。 無条件跳躍とは、指定された識別子ラベルが付いた文に実行位置(プログラムカウンタ)を飛ばす事を表す。 ただし、跳躍できるのは関数内のみである。関数外に跳躍する場合はsetjmp()を用いる。 ※注意) goto文を安易に用いると可読性の悪いプログラムとなるので注意が必要である (参考文献:「Go To Statement Considered Harmful」,Edsger W. Dijkstra」) |
---|---|
定義 |
識別子ラベル名 : goto 識別子ラベル名 ; |
実装例 |
#include <stdio.h> int main(void) { int a = 0; LOOP_START: /* 識別子ラベル */ a = a + 1; /* 加算 */ if (a < 10) { /* 変数aが10未満の場合に{ }内を実行 */ printf("%d\n", a); goto LOOP_START; /* LOOP_STARTラベルに跳躍 */ } printf("Finish\n"); return 0; } |
実行結果 |
1 2 3 4 5 6 7 8 9 Finish |
goto