- ベストアンサー
JavaにはなぜGO TO 命令がないのでしょうか?
皆さん教えて下さい。私はCOBOLを長年手がけ、最近Javaを勉強している者です。 JavaにはなぜGO TO 命令がないのでしょうか? IF ネストというのは、わかりにくく、私は昔から嫌っておりました。 ところがJavaにはGO TO 命令が無いため、いやでもIF ネストを使わねばならないようです。 それともわかりやすく効率的なコーディングが別にあるのでしょうか?? 3択の問題で、下記AはJavaの教科書的コーディングです。3択だからまだしも複雑になると、IFネストはわかりにくいと私は思います。 下記Bはわかりやすいですが、無駄な処理が発生し、良くないコーディング例です。 下記CはCOBOLコ-ディングで、GO TOが使えるため、人間が読んでわかりやすく、処理効率もいいです。 ●この点Javaをやっている皆さんどうお考えですか??? ------------------------------------------------------------------------------------ A<教科書的サンプル> if(a > 0){ System.out.println("aは正の値です。"); }else if(a == 0){ System.out.println("aはゼロです。"); }else{ System.out.println("aは負の値です。"); } ------------------------------------------------------------------------------------ B<if ネストを嫌った サンプル> if(a > 0){System.out.println("aは正の値です。");} if(a == 0){System.out.println("aはゼロです。");} if (a < 0){System.out.println("aは負の値です。");} 処理効率悪く、良くないプログラム例 ------------------------------------------------------------------------------------ C<COBOL なら> IF a > 0 DISPLAY "aは正の値です。" GO TO OWARI. IF a = 0 DISPLAY " aはゼロです。" GO TO OWARI. IF a < 0 DISPLAY " aは負の値です。" . OWARI. . GO TO 命令がある故に効率的 IF 構文の終わりと、OWARI の後ろにピリオドがあります。 ------------------------------------------------------------------------------------
- みんなの回答 (19)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (18)
- ProKaseifu
- ベストアンサー率51% (98/192)
- ProKaseifu
- ベストアンサー率51% (98/192)
- ProKaseifu
- ベストアンサー率51% (98/192)
- foxa-gogo
- ベストアンサー率44% (38/85)
- dyna_1550
- ベストアンサー率34% (122/353)
- Dxak
- ベストアンサー率34% (510/1465)
- shinkun0114
- ベストアンサー率44% (1553/3474)
- 1
- 2
お礼
buriです。確かに言われてみればそうですね。else if を、何というか1つの語句のように捉えるというか(うまい表現が思いつきません)、慣れてしまえばそうなのかもしれません。 >各自の育った環境による主観かな?と思わないでもないです。> そうかもしれませんね。COBOLの、特に客に密接したプログラマは、仕様書を忠実にプログラムに置き換えるという発想が強いですからね。