[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 12/22 04:06 / Filesize : 243 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

gotoを恐れず使う兵共がfinallyや多重breakを語るスレ



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使わないともっと汚くなるんじゃない。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<243KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef