@IT情報マネジメント会議室は、2009年4月15日に新システムに移行しました。
新たに書き込みを行う場合には、新しい会議室をご利用ください。
- PR -

なぜ「GOTO文」を使っては、いけないのですか?

投稿者投稿内容
skulker
常連さん
会議室デビュー日: 2003/11/13
投稿数: 41
投稿日時: 2004-04-23 16:43
引用:

たーぞうさんの書き込み (2004-04-23 16:13) より:
そういえば問題定義があいまいだったようですが、世間的に槍玉にあがっているのは「無条件GOTO文」でしたね。

ON ERROR GOTO とか、IF GOTO ならば問題ない、という趣旨だったと思います。



そんな事ないですよ。
if then goto だろうと try catch/on error goto だろうと、制御がいきなりどっかに跳ぶという点では変わらないです。下手に使えばスパゲッティですよね。
ただのgotoより相当に改善されてはいますし try catch 禁止なんてのはありえませんけど、ドグマティックに言うならおんなじかと。
少なくとも if goto は槍玉に上がっていると思います。

[ メッセージ編集済み 編集者: skulker 編集日時 2004-04-23 16:44 ]
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-04-23 17:00
 じゃ、こうしましょう。制御がどこかに飛んでしまう事が、ロジックの崩壊だと断言される
のならば、Z80, 8086, モトローラ等のアセンブラで

JMP, JNZ, JC, JNC, JCXZ, JE, JZ, JNE

等の飛び先ラベル指定可能な種類のニモニックを全て廃止してしまいましょう。
ま、デバイス・ドライバやOSにどういう深刻な影響が出るかはさておき。
たーぞう
ぬし
会議室デビュー日: 2003/08/08
投稿数: 317
お住まい・勤務地: お花畑
投稿日時: 2004-04-23 17:29
引用:

skulkerさんの書き込み (2004-04-23 16:43) より:
引用:

たーぞうさんの書き込み (2004-04-23 16:13) より:
そういえば問題定義があいまいだったようですが、世間的に槍玉にあがっているのは「無条件GOTO文」でしたね。

ON ERROR GOTO とか、IF GOTO ならば問題ない、という趣旨だったと思います。



そんな事ないですよ。
if then goto だろうと try catch/on error goto だろうと、制御がいきなりどっかに跳ぶという点では変わらないです。下手に使えばスパゲッティですよね。
ただのgotoより相当に改善されてはいますし try catch 禁止なんてのはありえませんけど、ドグマティックに言うならおんなじかと。
少なくとも if goto は槍玉に上がっていると思います。

[ メッセージ編集済み 編集者: skulker 編集日時 2004-04-23 16:44 ]


「世間的」という言葉が不適切でしたね。すみません。
1968年のダイクストラによる無条件分岐に対する批判について触れたつもりでした。


[ メッセージ編集済み 編集者: たーぞう 編集日時 2004-04-23 17:32 ]
みゅう
常連さん
会議室デビュー日: 2004/04/14
投稿数: 49
お住まい・勤務地: 都内某所
投稿日時: 2004-04-23 17:33
こんにちわ、みゅうです。
久々に業務に夢中になっていたら、話題に乗り遅れましたw
乗り遅れついでに、脱線を。。。

N88-BASIC(86)でしたっけ?NECの・・・
あれを中学生の頃、カリカリ書いてました。
って本当に物理的にかいてました。
プログラムシート(多分こんな名前だった)に手書きでプログラムするんです。
ご存知の方多いですよね?
確か一行が80文字位のシートで、例えるなら横書きの原稿用紙の様。
先輩に、「プログラムは下書きしてから組むのが基本だ!」と言われ
そうやっていたような記憶が。。。
で、GOTOをやたらめったら記述した物を提出すると怒られたような^^;

脱線失礼しましたm(_)m
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2004-04-23 20:38
引用:

たーぞうさんの書き込み (2004-04-23 13:26) より:
確かにGOTO悪者論の黎明とBASIC言語の普及とは時期的に重なっていたと思いますが、しかしその当時はBASICはまだホビーとして使われることが多く、業務プログラムはアセンブリ言語、COBOLあるいはFORTRANで書かれていることが多かったと思います。


えーと、「GOTOは有害だ」と言ったのも「BASICなんかやってると脳に回復
不可能なダメージを受けてしまう」と言ったのもどちらもDijkstra先生で、
# 私の脳ミソがDijkstra先生の主張の正しさを裏付けている
それらは「構造化プログラミングしましょう」という主張の一環なわけで。
主敵はFORTRANあたりであるにしても、BASICもやっぱりGOTO問題に含まれて
いるんじゃあないかなあ、と思うです。

引用:

GOTO悪者論は、やはり処理の追いにくさが理由の第1位で、単にBASICにおける言語仕様に由来するものではなかったと記憶していますが。


スパゲティとかスパゲティの素とかをつくりやすい、ということですな。
CHN
ぬし
会議室デビュー日: 2002/03/07
投稿数: 382
投稿日時: 2004-04-23 21:01
こんばんは。

こうやって見てますと、
みなさん、ベテランですね。
話題に入れないですね。昔の話は全然わかりません。

俺最初に、触ったのがVisualBasic6.0です。
学校の課題でlabelに「hello world」を入れて実行して表示するだけのプログラムでした。
プログラムか?それ
って今は思いますね(当時はこれでも難しく感じましたが)。

_________________
落社員
会議室デビュー日: 2004/02/12
投稿数: 14
投稿日時: 2004-04-23 22:01
引用:

CHNさんの書き込み (2004-04-23 21:01) より:
学校の課題でlabelに「hello world」を入れて実行して表示するだけのプログラムでした。



そういえば、なんで「hello wolrd」なんですかねぇ。
前々から気になってはいましたが。
#どの言語の本にも第一ステップとして「hello world」を表示させようってのがありませんか?
#気のせいかなー
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-04-23 22:50
引用:

落社員さんの書き込み (2004-04-23 22:01) より:
そういえば、なんで「hello wolrd」なんですかねぇ。
前々から気になってはいましたが。
#どの言語の本にも第一ステップとして「hello world」を表示させようってのがありませんか?
#気のせいかなー



NAL-6295です。

#脱線レス

やっぱり、その言語の世界に初めて触れるわけだから、とりあえず挨拶しときましょうって事なんでしょう。

とこじつけてみる。

スキルアップ/キャリアアップ(JOB@IT)