next up previous contents
Next: 課題3 Up: C言語プログラミング中級編1 - 制御文- Previous: switch文   Contents

goto文とラベル

goto文は、無条件に流れを変更する命令文であり、 ラベルはそのジャンプ先を示すものである。 書式は下記のようなものであり、ラベルの後にコロン(:)をつける点が注意点である。


goto ラベル;
 
ラベル:文

goto文は、多用するといわゆるスパゲッテイプログラムと呼ばれる 読みにくいプログラムになる恐れもあるので注意が必要である。 実際、構造化言語であるC言語では、goto文を使うことはあまり無い。 しかしながら、2重ループからの脱出や、 エラー処理を一括して行う個所へジャンプするなどのような場合には、 有効な手段であり、プログラムも読みやすくなる面もある。

ラベルは、あくまでもジャンプ先の実行文につける修飾であるので、 ラベルの直後に実行文がないと、(コンパイラ次第では)コンパイルエラーが 出る場合もある。

以下、2重ループからの脱出例を示す。


for(ic = 0; ic < 100; ic++){
for(k = 0; k <=nu; k++){
/* 内側の繰り返し文 */
if( /* 2重ループから抜け出る条件式 */ ){
goto label1;
}
}
}
label1:/* 文 */



kojima hirohisa
2001-03-05