goto ラベル; |
ラベル:文 |
goto文は、多用するといわゆるスパゲッテイプログラムと呼ばれる 読みにくいプログラムになる恐れもあるので注意が必要である。 実際、構造化言語であるC言語では、goto文を使うことはあまり無い。 しかしながら、2重ループからの脱出や、 エラー処理を一括して行う個所へジャンプするなどのような場合には、 有効な手段であり、プログラムも読みやすくなる面もある。
ラベルは、あくまでもジャンプ先の実行文につける修飾であるので、 ラベルの直後に実行文がないと、(コンパイラ次第では)コンパイルエラーが 出る場合もある。
以下、2重ループからの脱出例を示す。
for(ic = 0; ic < 100; ic++){ |
for(k = 0; k <=nu; k++){ |
/* 内側の繰り返し文 */ |
if( /* 2重ループから抜け出る条件式 */ ){ |
goto label1; |
} |
} |
} |
label1:/* 文 */ |