2014年6月27日

Goto文は悪ではない!という話

 プログラミングをしていて急に思い出した話です。


Goto文とは、処理の流れを強制的に変更する為の命令
最近の言語にあるかどうかは調査してません。


Goto文は悪ではないと思っています。

 ただ、処理の流れを変える為に前に戻ったり、先に進んだりをやり過ぎると読めないプログラムになってしまうということです。
 簡単にいうと使わないですむんだったら、使わないほうがよい。悪用はするなということだと思います。

 自分が使うときはどういう時かというと、「深いループとかを一気に抜けたい時だけ」です。

 確かに、「プログラムやデータ構造が良くないから、そんなに深いループになるんだ」という議論はありますが、どうしても必要なときはあります。
 そういった時は、それぞれのループに抜ける為に何らかの条件(フラグ等)を付けて見通しがわるくなるんだったら、Gotoで一気に抜けます。
 そのほうが、良いと思います。


でも、新しくプログラムを作るときは、Goto文に頼らないプログラミングが良いですよね。

例えば、
 try~catchの例外捕捉の仕組みもGotoと同じ動きですよね。
 COBOL/Sという、ACOSという汎用機のCOBOLにも、LEAVEという構造を抜けるための命令がありました。これも同じです(何階層抜けるか数字で指定していたような気がします。)。


なので、できるだけGoto文を使用しなくても良いプログラミングを心がけましょう。

0 件のコメント:

コメントを投稿