1 名前:デフォルトの名無しさん [2005/08/11(木) 11:18:15 ] 前スレ pc8.2ch.net/test/read.cgi/tech/1021364372/
101 名前:デフォルトの名無しさん mailto:sage [2006/09/28(木) 23:28:51 ] >>100 約15年前のキミに言っておきたい。 そのコードにはコメントを入れておけとw
102 名前:デフォルトの名無しさん mailto:sage [2006/09/28(木) 23:29:29 ] おっと、もちろん、goto使用理由に関するコメントな。
103 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 00:27:57 ] 最近のコンパイラだと、最適化で消される悪寒・・・
104 名前:98 mailto:sage [2006/09/29(金) 00:49:32 ] >そのコードにはコメントを入れておけとw まったくもってそうかも知れない。。。 ちなみに別な所はこんな感じ // マウス割り込みを許可する void pascal MOUSE::_enable() { asm pushf disable(); setvect(MOUSE_VECT,MOUSE::main); // ベクタの更新 outp(0x7fdf,0x93); // マウスモードセット int a = inp(0x0a) & 0xdf; // 8259A(スレーブ)読みだし outp(0x0a,a); // マウス割り込み許可(8259A) goto w1; w1: outp(0x7fdf,0x08); // マウス割り込み許可(8255A) goto w2; w2: asm popf } これだけマメにコメント入れているのに問題のgotoだけ何のコメントも 入ってないのは一体。。。。orz
105 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 06:52:14 ] 自信の有無か、切羽詰ってたのか、或いは煮詰まっていたのか。
106 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 23:52:01 ] >>104 マジックナンバー(0x7fdfとか)に対するコメントはgoodだが、 「ベクタの更新」はコメント要らない気がする。 ていうか、だからgotoにコメント入れろとw
107 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 02:16:48 ] goto を入れるまでも無いくらい、自然で当然な行為だったんでわ。
108 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 02:17:28 ] goto を、じゃなくてコメントを、だった。 酔ってるんで許してくれ。
109 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 02:21:43 ] nopするだけのasmブロックをマクロで定義した方が良かったと思われる。
110 名前:デフォルトの名無しさん [2006/12/01(金) 12:12:09 ] gotoを恐れなく使うのなら、finallyやbreakなんてヌルい物じゃなく、 gotoより強力な継続をバリバリに活用する方法を語るべきだろ。
111 名前:デフォルトの名無しさん [2006/12/01(金) 12:34:53 ] ま、要するに使う側にとっては多少CPU時間が変わろうが仕様通り動けば良いわけだから 個人で開発するぶんには、完全に好みと言うか主観なわけで。
112 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 10:41:09 ] それは議論の対象外だろ
113 名前:デフォルトの名無しさん mailto:sage [2006/12/23(土) 22:52:44 ] 個人的に、breakとか使わなくてもifとgotoで事足りるんだが。
114 名前:デフォルトの名無しさん mailto:sage [2006/12/24(日) 15:34:12 ] そりゃ、そうだろ…
115 名前:デフォルトの名無しさん mailto:sage [2006/12/24(日) 15:46:17 ] プリフェッチの関係でnopではなくjmp shortを使わないとウエイトにならないとかでしょ? 当時のPC98ではそれが普通だったっつーか俺が覚えてるくらいだから広まってはいたんじゃないか
116 名前:デフォルトの名無しさん mailto:sage [2006/12/25(月) 13:40:26 ] これまで何度も言われてきたことだけど 「個人で開発するぶんには・・・」とか「***で事足りるから***は不要」とか 無意味だとは思わんかね?
117 名前:デフォルトの名無しさん mailto:sage [2006/12/25(月) 14:15:25 ] andとnotとorとgotoで事足りるから制御構造は不要
118 名前:デフォルトの名無しさん mailto:sage [2006/12/27(水) 00:36:01 ] nand さえあれば、andもnotもorも不要なんじゃなかったっけ?
119 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 15:51:00 ] 最終的にはチューリングマシン云々とかマシン語云々に行き着くんだろうな
120 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 00:38:20 ] >>119 フルアセンブラで組むのはさすがにバカ→C言語を使う俺、最高→いやいやC++使いの俺、最高→(以下略
121 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 01:11:44 ] プログラマを顎で使うクライアントの俺、最高
122 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 06:34:33 ] 作業に見合うだけのお金を払ってくれるならな。
123 名前:デフォルトの名無しさん mailto:sage [2007/01/02(火) 20:09:15 ] >>81 と似たケースなんだけど if(A){ if(B){ procX; } else { procY; } } else { procY; } ってなってたら判断回数を増やさずにprocYを 一箇所だけにしたい場合、 if(A){ if(B){ procX; } else { goto _Y; } } else { _Y: procY; } って書く以外にある?
124 名前:デフォルトの名無しさん mailto:sage [2007/01/02(火) 20:28:59 ] if (A && B){ procX; } else { procY; } じゃいけないの?
125 名前:デフォルトの名無しさん mailto:sage [2007/01/02(火) 20:55:36 ] それじゃプログラムが変わってしまう。
126 名前:デフォルトの名無しさん mailto:sage [2007/01/02(火) 20:58:39 ] あれ、ぼけてたかも…
127 名前:デフォルトの名無しさん mailto:sage [2007/01/02(火) 21:07:49 ] >>123 すげー gotoは絶対禁止ってルール作った方がいいよw
128 名前:デフォルトの名無しさん mailto:sage [2007/01/02(火) 21:20:41 ] >>125 特に変わってないように見えるんだけど
129 名前:デフォルトの名無しさん mailto:sage [2007/01/02(火) 22:20:23 ] >>128 >>126
130 名前:デフォルトの名無しさん mailto:sage [2007/01/02(火) 22:22:59 ] だいたいgoto無くて困った事ないなw
131 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 19:40:17 ] >>129 ああそうか、 >>125 =>>126 なのか。 >>124 =>126 だと思ってた
132 名前:デフォルトの名無しさん mailto:sage [2007/01/03(水) 20:01:01 ] (A && B && (procX || 1)) || procY; ネタ提供
133 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 20:07:36 ] 自分はこんなくだらないことでgotoを使う/使わないなどと悩むことはしないよ。
134 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 21:43:08 ] 悩むまでもなくgotoを使うということか
135 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 21:49:00 ] goto眼中無しだろ普通
136 名前:133 mailto:sage [2007/01/04(木) 22:00:10 ] >>134 当然noだ。 故意に曲解していないか? >>135 yes
137 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 22:17:01 ] 134 はギャグで言っただけだろう
138 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 22:33:01 ] はいはいthrowthrow
139 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 23:21:51 ] しかしcatch
140 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 23:23:35 ] しかしgotoの嫌われっぷりも、相当なもんだよな 実際多少gotoつかったぐらいじゃ、可読性など落ちはしない 可読性を決める要因は、goto文の有無とは殆ど関係ないところにあるのにな C++でgoto使うと、gotoでコンストラクタすっ飛ばすんじゃねえ とか、コンパイラに怒られたりするな goto文はなかなか教育的だ
141 名前:デフォルトの名無しさん mailto:sage [2007/01/04(木) 23:35:33 ] 使うシーンが思い浮かばん 使わなきゃならない、もしくは使ったほうがいい場合が思い浮かばん もっともJava使ってんだけどJavaにはgotoって無いよね?
142 名前:デフォルトの名無しさん mailto:sage [2007/01/05(金) 01:10:07 ] 残念ながらJavaはgotoをサポートしていない。
143 名前:デフォルトの名無しさん mailto:sage [2007/01/05(金) 01:23:31 ] 特に残念でもないw
144 名前:デフォルトの名無しさん mailto:sage [2007/01/05(金) 01:25:25 ] まぁ、Java は goto なんか使わせたら速攻でスパゲッティなコードを書くようなプログラマを対象にした言語だからな。
145 名前:デフォルトの名無しさん mailto:sage [2007/01/05(金) 01:27:06 ] kwsk
146 名前:デフォルトの名無しさん mailto:sage [2007/01/05(金) 01:33:27 ] このコマンドをいれると自動で玉が出る goto ゴト行為はやめましょう
147 名前:デフォルトの名無しさん mailto:sage [2007/01/05(金) 01:36:05 ] >>145 詳しくもなにもそのまんまなだけ。Javaが現代COBOLだとか言われているのって聞いたことない? "普通のプログラマはまともに使いこせない"という理由で他にも元ネタの言語であるC++からtemplateなどを排除し、 メモリ管理ひとつまともにできないプログラマの為にGCを標準装備したりしている。
148 名前:デフォルトの名無しさん mailto:sage [2007/01/05(金) 01:37:48 ] >>147 そういえばそういうコードはよく見るなw
149 名前:デフォルトの名無しさん mailto:sage [2007/01/05(金) 11:29:43 ] >>144 実際には goto なくてもスパゲッティ作れる人が大量投入されてる。 (そうじゃない人も多数いるけど。まぁどの言語もなんだが。)
150 名前:デフォルトの名無しさん mailto:sage [2007/01/05(金) 11:50:03 ] Javaでmainに全コードベタ書きするスタイルを採用したらgotoが必要になると思うぞ。
151 名前:デフォルトの名無しさん mailto:sage [2007/01/05(金) 12:02:54 ] Dr.goto
152 名前:デフォルトの名無しさん mailto:sage [2007/01/05(金) 21:53:43 ] 手続き指向言語(?)にはgoto欲しいかもね
153 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 17:24:39 ] >>83 それだと評価順が変わるのでいいのか? >>85 あとにコードが続いてたらreturnはまずい気が。
154 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 17:51:23 ] >>147 詳しくのニュアンスに違和感を覚えるのは俺だけではないはずだ
155 名前:デフォルトの名無しさん [2007/01/06(土) 18:46:18 ] >>154 IT土方の現代コボラーさん、いらっしゃ〜い。 まぁ、IT土方なんて沢山いるから、違和感を覚えたのは君だけじゃないよ、きっと、うん。
156 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 19:10:46 ] 違和感を覚えた部分はそこじゃないと思うよ多分。
157 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 19:14:03 ] >>156 IT土方さん、いらっしゃい。
158 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 20:13:02 ] コボラーにはJAVAすら使えない。
159 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 20:34:18 ] こぼらーってJavaっていう言語があること知ってるの?
160 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 22:01:30 ] >>158-159 コボラーにあやまれ! そこの現代コボラー!
161 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 22:15:19 ] コボラーってアトランティス人みたいなもんでしょ
162 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 22:38:27 ] コボラーってどんな言語?
163 名前:デフォルトの名無しさん mailto:sage [2007/01/06(土) 22:44:53 ] コボラーって伝承とか伝説でだけ出てくる空想上の生物じゃね?
164 名前:デフォルトの名無しさん mailto:sage [2007/01/07(日) 16:28:26 ] >>141 機能限定のラベル付きbreak、continueなら・・・
165 名前:デフォルトの名無しさん mailto:sage [2007/01/07(日) 17:57:19 ] 高速電脳の斜向かいにある美容院の名前はコボル
166 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 01:37:16 ] コボルちゃん
167 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 17:48:22 ] >>158-159 Javaも書けるCOBOLプログラマはそもそもコボラーとは呼ばれない
168 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 18:02:11 ] >>167 そのJavaコードがコボルチックだったりするからコボラーと呼ばれる。 コボラーが書いたC言語のコード見たらすごかった。 全部グローバル変数にしてw
169 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 18:38:23 ] >>167 そりゃそうだ、現代コボラーと呼ばれるだけだから。 >>168 あるあるw
170 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 20:15:24 ] >>168 コボルにはローカル変数無いの? ちなみにおれ、コボル覚えられなかったんだよね…(´・ω・`) C系よりよほど難しいと思うんだが。
171 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 20:23:11 ] >>170 10年以上前にやったCOBOL85あたりではローカル変数って言う考え方は無かった アドレスとかポインタとか意識する必要が無いからCOBOLのほうが圧倒的に簡単だと思うがの
172 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 20:26:56 ] >170 >ちなみにおれ、コボル覚えられなかったんだよね…(´・ω・`) >C系よりよほど難しいと思うんだが。 ナカーマ( ・∀・)人(・∀・ ) 俺もC++ならtemplateもバッチリ使いこなせてメタプロもできるし、 アセンブラやスクリプト系の言語も問題なくこなせるんだが、 COBOLだけはダメっす。
173 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 23:47:19 ] cobolはデータ依存プログラミングができるから、ある意味非常に強力。 逆に、それを使わないとグローバル変数しかない非常に貧弱な言語になってしまう。
174 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 23:15:26 ] だから、商用システムなんかにはよく使われていた。 当時は、それが生産性が高かったんだよ。
175 名前:デフォルトの名無しさん mailto:sage [2007/03/03(土) 23:23:27 ] 漏れのトコはエラー処理へすっ飛ばす時にgoto使ってるんだが。 goto完全毛嫌い派ってそこんとこどうなん?
176 名前:デフォルトの名無しさん mailto:age [2007/03/04(日) 16:11:26 ] >>175 あいつら馬鹿だから、もちろんそれも否定するよ。
177 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 16:29:08 ] たまに1関数1returnとか言い出す。
178 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 16:53:23 ] if( is_error( hoge, hoge ) ) { 10行ぐらいのエラー処理 return ERROR; } if( is_error( next, hoge ) ) { 上のと同じ10行ぐらいのエラー処理 return ERROR; } if( is_error( next_next, hoge ) ) { やっぱり同じ10行ぐらいのエラー処理 return ERROR; } 以下続く こんな感じの無残なコードは、何度も見かけたもんだがw
179 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 14:58:09 ] 例外キャッチしたら頭に戻ってやり直しってコードには躊躇なくgotoを使うな
180 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 21:42:18 ] >>179 それって catch ブロックの中から try ブロックの中あるいはその前へ飛ぶの?
181 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:02:59 ] for(;;) try{ // 例外が起きそうな処理 break; } catch(e){ }
182 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:46:11 ] ダサッ
183 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 01:25:49 ] 摩訶不思議
184 名前:デフォルトの名無しさん mailto:sage [2007/04/29(日) 03:54:13 ] 1関数1returnというのは「出口はひとつ」を誤解してるんだろうな。 returnが複数でも出口は一つだし。returnはある意味"goto 最後の}"だと 思えばいい。 本当の「出口が一つじゃない」というのはBASICの 100 GOSUB 200 110 PRINT "1" 120 PRINT "2" 130 END 200 INPUT A 210 IF A=1 THEN RETURN 110 220 RETURN 120 の210行と220行みたいな話を言っているはず。これはもはやreturnではなくて gotoだからな。
185 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 03:33:13 ] じゃあ「入り口が一つ」については?
186 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 20:37:51 ] 入り口も出口も複数 subroutine hoge(i, j, k, *, *) k = i + j entry huge(k, *, *) k = k - 1 if (k .ne. 0) return 1 return 2 end program main read(*,*) n1, n2 call hoge(n1, n2, i, *100, *300) 100 write(*,*) n1, ' + ', n2, ' - 1 = ', i i = 10 200 write(*,*) i call huge(i, *200, *300) 300 write(*,*) 'end' end
187 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 18:25:16 ] >>186 よーし、おじさんはCOBOLつかっちゃうぞ。 PERFORM xxx THRU yyyy
188 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 20:53:36 ] goto 1;
189 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 00:08:15 ] goto\s+[\w\d]+;|^\s*[\w\d]+: をショッキングピンクにしてgoto使いまくりだな。
190 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 18:15:53 ] 色々謎な正規表現だな
191 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 11:32:44 ] 189の目を盗んでラベルの後に空白文字を入れてやるぜ。 goto fuck189 ; fuck189 :
192 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:14:32 ] 以下のケースってgotoしたくなる。 if(a && b && c){ 処理1 goto jmp; } else if(d){ 処理2 } if(a && b){ jmp: 処理3 }
193 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 20:37:51 ] 真理値表を書いてみよう。 a b c d 処理1 処理2 処理3 0 0 0 0 x x x 0 0 0 1 x o x 0 0 1 0 x x x 0 0 1 1 x o x 0 1 0 0 x x x 0 1 0 1 x o x 0 1 1 0 x x x 0 1 1 1 x o x 1 0 0 0 x x x 1 0 0 1 x o x 1 0 1 0 x x x 1 0 1 1 x o x 1 1 0 0 x x o 1 1 0 1 x o o 1 1 1 0 o x o 1 1 1 1 o x o なんだ、goto要らないじゃん。
194 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 10:55:01 ] で、バカを晒した>>192 はどこに行った? しかし、真理値表を書かないと結論が出ない>>193 も大概だがな。
195 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 20:10:20 ] >>194 if(a && b){ を省略したいってことじゃないかな。auto a,bだとして。 コンパイラにやって欲しい処理だ。
196 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 23:46:38 ] goto使ったら先輩にしつこくなじられるようになった うぜぇwwwwwgotoアレルギーうぜぇwwwwwww
197 名前:デフォルトの名無しさん mailto:sage [2007/10/29(月) 21:33:37 ] >>196 もともと人間関係うまくいってなかっただけじゃね?
198 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 14:45:06 ] うちの下っ端で考え無しにgoto使ってるアホがいやがる うぜぇwwwww無能下っ端うぜぇwwwwwww って感じだろ
199 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:53:27 ] pc11.2ch.net/test/read.cgi/tech/1169473442/553-578 あたりの続き > 578 :デフォルトの名無しさん:2008/02/09(土) 17:20:17 > >>570 > >556 名前:デフォルトの名無しさん [sage]: 2008/02/09(土) 13:55:24 > >まぁさ、例外あるような言語ではgotoいらないかもしれないけど、 > >Cとかだと普通に使うよ? > >557 名前:デフォルトの名無しさん [sage]: 2008/02/09(土) 14:28:31 > >いや,普通には使わないわ(ww > > ここから始まった話題なので、 > 今に限ってはCのgotoの話をしている。pythonは今のトピックにおいて関係なし。 > Cは例外ないから>>558 がgotoなしで書けるという話も決着がついてない。 > ここで例外使えばいいという指摘自体が的外れ。 > まあ実際gotoは無くてもいいが、あると遥かリソース開放とかは便利。 > むろんGCとか例外とかがあればそっちのが便利だが。 存分にどうぞ。 あ、setjmp/longjmp使うからgoto使わないわ、というオチは禁止ね。
200 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:55:48 ] >>199 リソース解放のためにgotoって、、、不必要に汚ないコードができるだけだろ
201 名前:デフォルトの名無しさん [2008/02/09(土) 17:59:11 ] >>200 goto使わないともっと汚くなるんじゃない。