[表示 : 全て 最新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/

53 名前:デフォルトの名無しさん mailto:sage [2005/10/23(日) 23:21:13 ]
「汚い」の定義もしないで何を話しているのか・・・

54 名前:デフォルトの名無しさん mailto:sage [2005/10/23(日) 23:22:21 ]
お前ら良くこんな底の方にあるスレに気がついたな

55 名前:デフォルトの名無しさん mailto:sage [2005/10/23(日) 23:23:37 ]
>>53
定義はいらん。主観だからだ。
ヒューマンインターフェースチックな評価手法が妥当だと思われる。

56 名前:デフォルトの名無しさん mailto:sage [2005/10/23(日) 23:25:07 ]
汚ないコードとgotoを使う・使わないが直交しているし、
gotoを使わないコードはgotoを使うコードの100倍どころか
1000倍以上存在しているだろうから、
goto使った汚いコードよりgoto使わない汚いコードのほうがはるかに多いだろう。


57 名前:デフォルトの名無しさん mailto:sage [2005/10/23(日) 23:27:22 ]
goto使いたがる人間はコーディングに対して意識の高い人間だからコードはきれい。
ただgotoを排除したがる人間は噂レベルの情報を鵜呑みにする思考停止したコーディングレベルの低い人間だからコードが汚い。

58 名前:デフォルトの名無しさん mailto:sage [2005/10/24(月) 09:58:24 ]
すでにgotoの存在自体を知らないプログラマが大多数を占めている罠


59 名前:デフォルトの名無しさん mailto:sage [2005/10/24(月) 10:24:45 ]
よくわかんない。
統計とってよ。

60 名前:デフォルトの名無しさん mailto:sage [2005/10/24(月) 13:55:43 ]
統計統計と連呼しないで下さい。話を止める効果しかありませんよ。
ご自身の主張をなされば良いでしょう

61 名前:デフォルトの名無しさん mailto:sage [2005/10/24(月) 16:35:13 ]
「早起きは三文の得」と言われても、統計を要求する人なんだよ、たぶん。



62 名前:デフォルトの名無しさん mailto:sage [2005/10/24(月) 17:39:59 ]
その三文とは金額のことですか? それとも距離のことですか?
具体的にどんな得があるというのか説明してください。

とか?

63 名前:デフォルトの名無しさん [2006/01/05(木) 19:14:32 ]
>>58
それはないよ
ジャンプも知らない奴はデバッグできない

64 名前:デフォルトの名無しさん [2006/01/05(木) 19:19:09 ]
なぜアセンブリのgotoは許されるのかについて

65 名前:デフォルトの名無しさん [2006/01/05(木) 19:20:29 ]
っていうか、アセンブリでjmpなかったら何もできん・・・w

66 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 19:21:45 ]
つかお前らassertスレが大分前に落ちましたよ

67 名前:デフォルトの名無しさん mailto:sage [2006/01/09(月) 00:09:17 ]
gotoだろうが何だろうが頭ごなしに否定あるいは肯定をするのは自分でモノを考えていない証拠です!><
プログラミングってのがそんな定型的な作業ならわざわざ人間様がやる必要はないはずです!><

68 名前:デフォルトの名無しさん mailto:sage [2006/01/09(月) 00:20:44 ]
>>67
自分で考えているかどうかっつーより、思考停止しているだけの話だろ。

69 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 00:05:45 ]
「自分で考えていない」と「思考停止している」はどう違うのか

70 名前:デフォルトの名無しさん mailto:sage [2006/01/15(日) 22:31:06 ]
gotoは使ってより美しくなるのなら使え、そうでないなら使うな、ではないか?



71 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 00:10:04 ]
>>70
同意するけど。
「何が美しいか」は完全に個人的な感覚に属する問題だからw



72 名前:デフォルトの名無しさん mailto:sage [2006/03/03(金) 02:45:41 ]
gotoにまつわる話だけで一冊の本になりそうなんだが
どこか出してくれないかな。買うぜ。

73 名前:デフォルトの名無しさん mailto:sage [2006/03/03(金) 21:13:04 ]
>>71
goto排斥原理主義者にとっては「gotoが使われている」=「最悪に醜い」だからなぁw

74 名前:デフォルトの名無しさん mailto:sage [2006/03/05(日) 14:23:47 ]
knuth先生のコードにもgotoが使われているものがあったぞ。
確かミニマックスαβ探索だったと思う。

knuth先生だって必要最低限のgoto使うことがあるのだから、原理主義はやめるべき。



75 名前:デフォルトの名無しさん [2006/05/03(水) 20:41:23 ]
goto 1

76 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 20:52:18 ]
>>74
ってか、knuth は goto 擁護論者の筆頭だろ。


77 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 21:42:42 ]
高徳納には先生ってつける奴多いけど何で?

78 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 17:16:51 ]
趣味だろ

79 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 22:28:29 ]
先生と 生徒

ハァハァ

80 名前:デフォルトの名無しさん mailto:sage [2006/05/04(木) 22:53:19 ]
ジジイは趣味じゃないからパス

81 名前:デフォルトの名無しさん [2006/08/08(火) 15:08:54 ]
 if (A) { procX; }
 else if (B) { procY; procX; }
という処理をしたいのですが、procX、procYともに関数にするほどではないけれども、
上の位置にベタで書くにはちょっと無駄なタイプをしている気がするような処理なのです。
そこで
 if (A) goto labelX;
 else if (B) goto labelY;
 else return;
 labelY: procY;
 labelX: procX;
という書き方をしました。procXとprocYの実装を一度しか書かないという縛りで
gotoを使わずに書く書き方があれば教えてくださいm(_ _)m




82 名前:81 mailto:sage [2006/08/08(火) 15:09:56 ]
書き込んで気が付きましたがスレ違いっぽいですね。
すみません。

83 名前:デフォルトの名無しさん mailto:sage [2006/08/08(火) 15:14:08 ]
if(B) procY;
else if(!A) return;
procX;

普通にこれではマズいのか?

84 名前:81 mailto:sage [2006/08/08(火) 15:57:02 ]
>>83
ぉぅっ。エレガントです…。思いつきませんでした。

実際のコードはAで判定できる箇所が多くかつ判定自体も速いので、
できればAの判定を先に持ってきたいのですが…。
先に書くべきでしたね。

85 名前:デフォルトの名無しさん mailto:sage [2006/08/08(火) 16:58:17 ]
if(!A) {
 if(B) procY;
 else return;
}
procX;

これで>>81と等価かな。

86 名前:81 mailto:sage [2006/08/08(火) 18:22:30 ]
>>85
できるもんなんですねぇ…。
勉強になりました。ありがとうございました。


87 名前:デフォルトの名無しさん mailto:sage [2006/08/08(火) 20:00:42 ]
そういう思考ができない人はあまりプログラマに向いて無い希ガス

88 名前:デフォルトの名無しさん mailto:sage [2006/08/08(火) 20:15:33 ]
>>81
俺ならこうやってネストしちゃうな。
(例として、条件がCまで、処理がprocZまでの三段階に増えたとする)

if(!A) {
 if(!B) {
  if(!C) return;
  procZ;
 }
 procY;
}
procX;

89 名前:デフォルトの名無しさん mailto:sage [2006/08/08(火) 21:43:38 ]
誰もお前には聞いてないんだよカス

90 名前:デフォルトの名無しさん [2006/08/08(火) 22:43:54 ]
GOTO使う事によってコードが短くなる件

91 名前:デフォルトの名無しさん mailto:sage [2006/08/08(火) 22:54:29 ]
まあ、goto使うことで
コードが短くも速くもならないなら
使うなとは言えるなw



92 名前:デフォルトの名無しさん mailto:sage [2006/08/08(火) 23:20:51 ]
    if (flag)
        goto N0021;
    return;

N0021:
    〜

こういうコードならつい最近見た。Fortran から C に単純変換したものらしい。
こういうのがいたるところに orz

93 名前:デフォルトの名無しさん mailto:sage [2006/08/08(火) 23:37:24 ]
>>92
実行形式から逆コンパイルした結果も
それと同様に goto だらけになったりするんだろうなぁ。

94 名前:デフォルトの名無しさん mailto:sage [2006/08/09(水) 19:48:06 ]
>>89
では今度からきちんと指名 (無料) するように。

95 名前:デフォルトの名無しさん mailto:sage [2006/09/06(水) 08:55:10 ]
コンパイル済みの汗ソース見ればくだらない議論と気付くはずw

96 名前:デフォルトの名無しさん mailto:sage [2006/09/06(水) 20:08:23 ]
ちうか、わざわざ高級言語つって読み書きしやすい制御構文を用意しているのに、
それを破壊するような使い方をするなっていうのがgotoは悪派の主張なわけで、
機械語に落ちれば全部jmpだろってのはあんまり関係ないよな。

まあ、機械語レベルのjmp命令がif等の制御構文と同等のレベルで
読み書きできるような人間にゃgotoだろうがforだろうが関係ないのかもしれんが、
そうじゃない人もいるんでそういう人も思いやってくれよということで。

97 名前:デフォルトの名無しさん mailto:sage [2006/09/28(木) 07:51:36 ]
1.gotoはどんな事があっても絶対使うな!
2.gotoはなるべく使わない方がいい

初心者に教えるなら1の方が正しいと思う。

98 名前:デフォルトの名無しさん mailto:sage [2006/09/28(木) 08:24:30 ]
ちなみに俺自身がどの程度使っているか調べてみたら、
92年ごろこんな事やってた。

// ポートからマウス移動量を取得
outp(0x7fdd,0x80);goto L1;
L1: x1 =inp(0x7fd9)&0xf;
outp(0x7fdd,0xa0);goto L2;
L2: x1+=(inp(0x7fd9)&0xf)<<4;
outp(0x7fdd,0xc0);goto L3;
L3: y1 =inp(0x7fd9)&0xf;
outp(0x7fdd,0xe0);goto L4;
L4: y1+=(inp(0x7fd9)&0xf)<<4;
outp(0x7fdd,0);goto L5;
L5: wark =inp(0x7fd9);

pc98のコードだが、今となってはよく分からん。
見ての通り組み込みに近い処理なので、こういうウェイトが
必要な場合もあったんだろうな、たぶん。


99 名前:デフォルトの名無しさん mailto:sage [2006/09/28(木) 19:48:42 ]
ジャンプ系の命令を挟んで数clockをwaitするってこと…なのか?
要するにnop代わりにgotoを使ったと…結構アレげだな

100 名前:98 mailto:sage [2006/09/28(木) 20:20:07 ]
>ジャンプ系の命令を挟んで数clockをwaitするってこと…なのか?

たぶん、そういう事をやりたかったのだと思う。
gotoはCで書けるけど、nopはasmブロックで書かなくてはならないので
gotoを選択したんじゃないかねー。「念のため」的なコードは書かない
主義なので、このgotoが無ければ動かない機種があったのだとは思う。
14〜15年前の若かりし日のコードなんで詳しい事は思い出せないなw

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はまずい気が。






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

前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