goto文
goto文とは、分岐文の内の1つであり、指定するラベルへ制御を移します。
そのラベルはgoto文を含む関数内になければなりません(関数有効範囲)。
goto文は特定のラベルへ制御を移すという性質上、プログラムの流れが不定になり(俗に言うスパゲティソース)、バグの温床となる可能性があります。
その為、goto文の使用は一般に推奨されていません。
goto文の利用
goto文は分岐先のラベルと組み合わせて記述します。
goto文 構文
goto 識別子;
ラベル 構文
識別子:
goto文を使用した記述例
// goto文 program in C.
#include <stdio.h>
int main(int argc, char *args[])
{
int i = 0; // ループカウンタ
int total = 0; // 合計値
// 5回(0~4の範囲)ループする
for (i = 0; i < 5; i++)
{
// 合計値が5を超えたときにOVER_FIVEに制御を移します
if (total > 5)
goto OVER_FIVE;
total += i * 2;
}
OVER_FIVE:
printf("Total:%d\n", total);
return 0;
}
実行結果
Total:6