goto文
goto文とは、プログラミング言語に於て、無條件に指定されたラベルにジャンプする指令の事。英語のgo toが由來であり、日本語に翻譯すると、「~へ行け」と云った意味になる。
C言語等の構造化プログラミング言語に於ては、goto文は使わないという暗默のルールが有る。
此れは、goto文の自由度が高過ぎて、多用すると、構造化を妨げ、デバッグ等の作業が行い難くなってしまうためである。此れによって、バグが発生したり、可読性を損なう事が有る。
此れは、goto文の自由度が高過ぎて、多用すると、構造化を妨げ、デバッグ等の作業が行い難くなってしまうためである。此れによって、バグが発生したり、可読性を損なう事が有る。
しかし、多重ループ等から一気に拔け出したい場合等は、goto文を使った方が效率が良く、可読性も上昇する。例えば、以下の樣なケースである。
- break文を使う場合
int i,j,k;
int jfl = 0,kfl = 0;
for(i = 0;i < 50;i++){
for(j = 0;j < 50;j++){
for(k = 0;k < 50;k++){
if(c[i][j][k] == 50){
kfl = 1;
break;
}
}
if(kfl){
jfl = 1;
break;
}
}
if(jfl)
break;
}
- goto文を使う場合
int i,j,k
for(i = 0;i < 50;i++){
for(j = 0;j < 50;j++){
for(k = 0;k < 50;k++){
if(c[i][j][k] == 50){
goto label;
}
}
}
}
label:
但し、BASIC?の樣な低レベルな言語では、goto文が必要不可欠である。goto文が無いと、ループや分岐が出來なくなってしまうのである。
goto文の多用に據って、プログラムの構造が複雜化し、著しい可読性の減少が有るプログラムを、「複雜に絡まっている」と云う意味で、スパゲッティプログラム?と云う事が有る。