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

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

投稿者投稿内容
ラフィン
ぬし
会議室デビュー日: 2002/05/23
投稿数: 809
お住まい・勤務地: 外野
投稿日時: 2004-04-23 14:39
引用:

たーぞうさんの書き込み (2004-04-23 12:57) より:
ワシの若いころはのぅ。FORTRAN Wなんてぇ言語があっての。IF文があるにはあったんじゃが、IFの中に書ける文は1つだけだったんじゃ。もちろんELSEなんてもんもなくてのぅ。ループ処理はFOR〜CONTINUEだけで、こんな言語仕様ではGOTO文なしではプログラムは作りようがなかったんじゃ。

今の若ェもんは、GOTOを一度も使わんでプログラムを作るそうじゃが、そんなことでなにがプログラマーじゃ。日本を背負って立つプログラマーになりたいなら、今からでも入門し直して、GOTOプログラムの道を極めるのじゃ!ゲホゲホゲホ・・・


 おちゃらけすぎですね。(笑)
 極めても活躍の場が少ないような...
がるがる
ぬし
会議室デビュー日: 2002/04/12
投稿数: 873
投稿日時: 2004-04-23 14:39
ども、がるでふ。
もっぱら雑談モードで(笑

引用:

サブルーチン概念が無い時は、GOSUB文ってのもありましたね。


懐かしいですねぇ。BASICをやっているわりと初期のころから、実は
結構GOSUB RETURN は多用してました。…小学校のころだったような(笑

GOTO文でのトリッキーな記述は、過去にずいぶん見聞きしてきました。
個人的には「そーゆー歴史が」GOTO禁止条例を生んだのではないか、と
思ってたりします。
根っこは「より分かりやすく読みやすくメンテナンスしやすい」コード
への要求だと思うので。
最終的に「GOTOの方が理解しやすい」ソースになるのであれば、
GOTO文を使ってもよいのではないかと思ってます。

で、あとはその匙加減の個人差が問題になるわけですな(苦笑

永井和彦
ぬし
会議室デビュー日: 2002/07/03
投稿数: 276
お住まい・勤務地: 東京都
投稿日時: 2004-04-23 15:21
引用:

最終的に「GOTOの方が理解しやすい」ソースになるのであれば、
GOTO文を使ってもよいのではないかと思ってます。

で、あとはその匙加減の個人差が問題になるわけですな(苦笑



ただ、プロジェクトが火を吹いて徹夜徹夜……とかでハイになってると、判断が狂いそうで怖いですね。担当者はその時はそのプログラムにどっぷりだから理解できてしまうでしょうけど。

原則禁止で、プロジェクトのまだ皆が冷静な段階で取り決めた限定されたケースのみOKという感じが個人的に好みです。

引用:

プログラムが続行不可能な状態では、GOTO 使って異常終了させるのは有効だと思いますね。
その後処理できる事といえば、メッセージ出力くらいでしょうから。



こういうケースは、今でもむしろ積極的に使いたいですねー。
#て言うか、使ってますが……正確にはGOTOではないけど、思想が一緒……
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2004-04-23 15:45
VB限定かもしれないですけど、
On Error Gotoはありですよね?(冷汗)

コード:
On Error Goto Alpha

If 条件式 Then
    Error.Raise(1)
End If

Alpha:
    処理


ラフィン
ぬし
会議室デビュー日: 2002/05/23
投稿数: 809
お住まい・勤務地: 外野
投稿日時: 2004-04-23 15:48
引用:

VB限定かもしれないですけど、
On Error Gotoはありですよね?(冷汗)


 ありでしょう。
 なくてもできるといえばできますが、シャレにならんですよね。
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2004-04-23 16:03
こんにちは〜。
うっわ、ようやっとここに来てみれば、ファイアー!してるじゃないですか(笑)。

個人的には

引用:

がるがるさんの書き込み (2004-04-23 14:39) より:

GOTO文でのトリッキーな記述は、過去にずいぶん見聞きしてきました。
個人的には「そーゆー歴史が」GOTO禁止条例を生んだのではないか、と
思ってたりします。
根っこは「より分かりやすく読みやすくメンテナンスしやすい」コード
への要求だと思うので。
最終的に「GOTOの方が理解しやすい」ソースになるのであれば、
GOTO文を使ってもよいのではないかと思ってます。


に同意です。(^^;
いつか自分の手元に帰ってきても、 にならないように、気を配りたいものですね。
(元ソースのフローを解析するために、膨大な残業はしたくないので。苦笑)
落社員
会議室デビュー日: 2004/02/12
投稿数: 14
投稿日時: 2004-04-23 16:10
#雑談です

IF 〜 THEN 行番号

THENの後のGOTO文はGOTOを省略することができる、とかってありましたよね…??
BASICは小学校の頃に弄っていたので記憶曖昧ですが……

#当時はGOSUB 〜 RETURNの使い道がさっぱりわかっていなかった
たーぞう
ぬし
会議室デビュー日: 2003/08/08
投稿数: 317
お住まい・勤務地: お花畑
投稿日時: 2004-04-23 16:13
引用:

るぱんさんの書き込み (2004-04-23 15:45) より:
VB限定かもしれないですけど、
On Error Gotoはありですよね?(冷汗)

コード:
On Error Goto Alpha

If 条件式 Then
    Error.Raise(1)
End If

Alpha:
    処理





そういえば問題定義があいまいだったようですが、世間的に槍玉にあがっているのは「無条件GOTO文」でしたね。

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

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