gotoを恐れず使う兵共がfinallyや多重breakを語るスレ
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/08/11(木) 11:18:150002デフォルトの名無しさん
2005/08/11(木) 11:29:020003デフォルトの名無しさん
2005/08/11(木) 12:32:08どうやって実装する?
0004デフォルトの名無しさん
2005/08/11(木) 12:42:54トップレベルウィンドウを閉じる処理をするんだろうなぁ。
いずれにしてもメッセージ操作だけだね。
0005デフォルトの名無しさん
2005/08/11(木) 12:51:53外部割り込み
0006デフォルトの名無しさん
2005/08/11(木) 13:07:400007デフォルトの名無しさん
2005/08/11(木) 13:36:100008マイク ◆yrBrqfF1Ew
2005/08/11(木) 14:38:370009デフォルトの名無しさん
2005/08/11(木) 16:00:29トートロジー
0010デフォルトの名無しさん
2005/08/11(木) 16:01:10gotoを恐れずに使いたくないからfinallyや多重breakを使うわけだが。
0011デフォルトの名無しさん
2005/08/11(木) 16:23:09本格的なプログラムを作成するために存在するC++にはなぜfinallyや多重break,continueがないのですか?
0012マイク ◆yrBrqfF1Ew
2005/08/11(木) 16:36:160013デフォルトの名無しさん
2005/08/11(木) 16:37:290014デフォルトの名無しさん
2005/08/11(木) 17:14:38finallyがないのはクラスを作ってデストラクタで何とかしなさいということ。
しかもstd::auto_ptrを始めとして大体は既にそのようなクラスが存在するから自分で作ることは少ない。
//俺が思うにfinallyや多重break, continueがないのは単に思いつかなかっただけではないかという気がする。
0015デフォルトの名無しさん
2005/08/11(木) 19:13:460016デフォルトの名無しさん
2005/08/11(木) 19:16:08俺の脳内的には「あとしまつ部」なんだけど、これじゃ格好悪いし。
0017デフォルトの名無しさん
2005/08/11(木) 19:25:31ってことは、お主は try とか catch は何て言うのよ
「finally 節」 で良いじゃん
0018デフォルトの名無しさん
2005/08/11(木) 19:55:49C++「おまえ、それでよくガベージコレクタがあるって言えたな」
Java「みんなCが好きなんだよ」
0019デフォルトの名無しさん
2005/08/11(木) 20:08:20ああ、メモリ以外は自分で解放する必要があるってことか
0020デフォルトの名無しさん
2005/08/11(木) 20:41:06女の子とか
0021デフォルトの名無しさん
2005/08/11(木) 20:44:16偏見。私は女だがCが嫌いというわけでもない。
0022デフォルトの名無しさん
2005/08/11(木) 20:57:05お前が本当に女なら、おっぱい晒せ。
0023デフォルトの名無しさん
2005/08/11(木) 21:03:21ずっと前からお前の事好きだった
0024デフォルトの名無しさん
2005/08/11(木) 23:21:320025デフォルトの名無しさん
2005/08/11(木) 23:22:24どーも〜〜〜、ゲイでぇ〜〜〜〜〜す〜〜〜〜
0026デフォルトの名無しさん
2005/08/11(木) 23:30:580027デフォルトの名無しさん
2005/08/12(金) 00:20:340028デフォルトの名無しさん
2005/08/12(金) 11:54:430029デフォルトの名無しさん
2005/08/12(金) 12:30:22>>22は氏んでくれ
0030デフォルトの名無しさん
2005/08/16(火) 23:30:11>10
然り。
0031デフォルトの名無しさん
2005/08/17(水) 01:41:130032デフォルトの名無しさん
2005/08/17(水) 11:41:55組み込みの場合のマジレス。
while(1) ;
0033デフォルトの名無しさん
2005/08/18(木) 00:02:44やっぱfinally無しではキツい気がする。
finallyの中身は後片付けでしかないんで
デストラクタに書けばいいだろと言う主張は
なんか面倒くさい気もするけど納得できた。
C++とは無関係にCにも例外処理とfinallyが欲しい。
0034デフォルトの名無しさん
2005/08/18(木) 00:18:21try-catchに関しては、普通にC++コンパイラ使えば良いじゃん。
0035デフォルトの名無しさん
2005/08/18(木) 01:17:31使ったらそれはもうC++だよw
0036デフォルトの名無しさん
2005/08/18(木) 03:16:490037デフォルトの名無しさん
2005/08/18(木) 09:11:42>C++とは無関係にCにも例外処理とfinallyが欲しい。
あるんだけど。
これまた、C++と無関係なCの例外処理だから、catchに困るんだけどね。
0038デフォルトの名無しさん
2005/08/20(土) 12:32:28:i|||||||||||||||
/''';:|||||||||||||||||l:、
/:i :||||||貞|||||||i `'! gotoやめれ〜・・ ・
/ :| :||||||||||||||||||l ノ!
| ヽ |||||||||||||||||||| :|
! !;ヽ:||||||||||||||||||||!; |
.__| |/|||||||||||||||||||||; |____
| _| .|/||||||||||||||||||||; |_____ .|
| |:='ヾ‐イ:||:|l|l|l|l|l|l|ll|||||' |::::::::::::| |
| |:::::::: | |;:|||||:l|:l|l|l|:l|:||||| イ=::::::| | ザー ……
| |:::::::::/ };|||||||||l|:l|l|l|:l|:|||.ノ:=:::::| |
| |:::=!川!;|||||!l|||l|:l|l||||ー'‐'.;:::::::::::| |
| |:::::::::!l.|ノ / ./:::::=:::::::| |
| |::::::::::::|::: ノ }::::::::=::::::| |
|  ̄ ̄~|::: 川リ ̄ ̄ ̄ ̄ |
| ̄l ̄ ̄|:::: | ~ ̄ ̄ ̄| ̄|
|_|:.::.:.:.:|::::: |:.:.:.:.:.::..:.:.:|_|
.:.:.:.:.:.:.:.:.:|;;;:::: .|.:.:.:.:.:.:.:.:.:..:.:.:.:
0039デフォルトの名無しさん
2005/08/20(土) 12:52:560040デフォルトの名無しさん
2005/08/21(日) 10:43:27必要としない言語は何でしょうか?
0041デフォルトの名無しさん
2005/08/21(日) 11:01:17「Fortranのような言語で使用されていたGOTO」というと、こんなのか?
ttp://xlsoft.com/jp/products/intel/cvf/docs/vf-html/az/az05_54.htm
0042デフォルトの名無しさん
2005/08/21(日) 11:13:07CやC++等ではGOTO使わないと思うのですが、GOTOを必要としない
ための構造というと、どういうものなのでしょうか?
もちろんFORやWHILEループ、SWITCH等はそれだとはおもうのですが。
0043デフォルトの名無しさん
2005/08/21(日) 14:27:40つ[COME FROM文]
ttp://www.fortran.com/fortran/come_from.html
0044デフォルトの名無しさん
2005/08/21(日) 14:43:51ダイキストラたんに聞いてこい。
0045デフォルトの名無しさん
2005/08/21(日) 23:26:50つ[構造化定理]
0046デフォルトの名無しさん
2005/08/22(月) 13:51:36>CやC++等ではGOTO使わないと思うのですが
あなたがどう思うかに関わらず
goto を必要とする人々はいます。
つーか、そういう質問をするスレではありません。
0047デフォルトの名無しさん
2005/08/25(木) 10:04:14継続(current-continuation)。
明示的に扱えるのはschemeくらいしか無いが。
0048デフォルトの名無しさん
2005/09/27(火) 12:40:41さりとてこれといった話題があるでもない。
0049デフォルトの名無しさん
2005/10/23(日) 18:03:340050デフォルトの名無しさん
2005/10/23(日) 18:07:55統計とってよ。
0051デフォルトの名無しさん
2005/10/23(日) 23:06:540052デフォルトの名無しさん
2005/10/23(日) 23:19:170053デフォルトの名無しさん
2005/10/23(日) 23:21:130054デフォルトの名無しさん
2005/10/23(日) 23:22:210055デフォルトの名無しさん
2005/10/23(日) 23:23:37定義はいらん。主観だからだ。
ヒューマンインターフェースチックな評価手法が妥当だと思われる。
0056デフォルトの名無しさん
2005/10/23(日) 23:25:07gotoを使わないコードはgotoを使うコードの100倍どころか
1000倍以上存在しているだろうから、
goto使った汚いコードよりgoto使わない汚いコードのほうがはるかに多いだろう。
0057デフォルトの名無しさん
2005/10/23(日) 23:27:22ただgotoを排除したがる人間は噂レベルの情報を鵜呑みにする思考停止したコーディングレベルの低い人間だからコードが汚い。
0058デフォルトの名無しさん
2005/10/24(月) 09:58:240059デフォルトの名無しさん
2005/10/24(月) 10:24:45統計とってよ。
0060デフォルトの名無しさん
2005/10/24(月) 13:55:43ご自身の主張をなされば良いでしょう
0061デフォルトの名無しさん
2005/10/24(月) 16:35:130062デフォルトの名無しさん
2005/10/24(月) 17:39:59具体的にどんな得があるというのか説明してください。
とか?
0063デフォルトの名無しさん
2006/01/05(木) 19:14:32それはないよ
ジャンプも知らない奴はデバッグできない
0064デフォルトの名無しさん
2006/01/05(木) 19:19:090065デフォルトの名無しさん
2006/01/05(木) 19:20:290066デフォルトの名無しさん
2006/01/05(木) 19:21:450067デフォルトの名無しさん
2006/01/09(月) 00:09:17プログラミングってのがそんな定型的な作業ならわざわざ人間様がやる必要はないはずです!><
0068デフォルトの名無しさん
2006/01/09(月) 00:20:44自分で考えているかどうかっつーより、思考停止しているだけの話だろ。
0069デフォルトの名無しさん
2006/01/10(火) 00:05:450070デフォルトの名無しさん
2006/01/15(日) 22:31:060071デフォルトの名無しさん
2006/01/16(月) 00:10:04同意するけど。
「何が美しいか」は完全に個人的な感覚に属する問題だからw
0072デフォルトの名無しさん
2006/03/03(金) 02:45:41どこか出してくれないかな。買うぜ。
0073デフォルトの名無しさん
2006/03/03(金) 21:13:04goto排斥原理主義者にとっては「gotoが使われている」=「最悪に醜い」だからなぁw
0074デフォルトの名無しさん
2006/03/05(日) 14:23:47確かミニマックスαβ探索だったと思う。
knuth先生だって必要最低限のgoto使うことがあるのだから、原理主義はやめるべき。
0075デフォルトの名無しさん
2006/05/03(水) 20:41:230076デフォルトの名無しさん
2006/05/03(水) 20:52:18ってか、knuth は goto 擁護論者の筆頭だろ。
0077デフォルトの名無しさん
2006/05/03(水) 21:42:420078デフォルトの名無しさん
2006/05/04(木) 17:16:510079デフォルトの名無しさん
2006/05/04(木) 22:28:29ハァハァ
0080デフォルトの名無しさん
2006/05/04(木) 22:53:190081デフォルトの名無しさん
2006/08/08(火) 15:08:54else 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
008281
2006/08/08(火) 15:09:56すみません。
0083デフォルトの名無しさん
2006/08/08(火) 15:14:08else if(!A) return;
procX;
普通にこれではマズいのか?
008481
2006/08/08(火) 15:57:02ぉぅっ。エレガントです…。思いつきませんでした。
実際のコードはAで判定できる箇所が多くかつ判定自体も速いので、
できればAの判定を先に持ってきたいのですが…。
先に書くべきでしたね。
0085デフォルトの名無しさん
2006/08/08(火) 16:58:17if(B) procY;
else return;
}
procX;
これで>>81と等価かな。
0087デフォルトの名無しさん
2006/08/08(火) 20:00:420088デフォルトの名無しさん
2006/08/08(火) 20:15:33俺ならこうやってネストしちゃうな。
(例として、条件がCまで、処理がprocZまでの三段階に増えたとする)
if(!A) {
if(!B) {
if(!C) return;
procZ;
}
procY;
}
procX;
0089デフォルトの名無しさん
2006/08/08(火) 21:43:380090デフォルトの名無しさん
2006/08/08(火) 22:43:540091デフォルトの名無しさん
2006/08/08(火) 22:54:29コードが短くも速くもならないなら
使うなとは言えるなw
0092デフォルトの名無しさん
2006/08/08(火) 23:20:51goto N0021;
return;
N0021:
〜
こういうコードならつい最近見た。Fortran から C に単純変換したものらしい。
こういうのがいたるところに orz
0093デフォルトの名無しさん
2006/08/08(火) 23:37:24実行形式から逆コンパイルした結果も
それと同様に goto だらけになったりするんだろうなぁ。
0094デフォルトの名無しさん
2006/08/09(水) 19:48:06では今度からきちんと指名 (無料) するように。
0095デフォルトの名無しさん
2006/09/06(水) 08:55:100096デフォルトの名無しさん
2006/09/06(水) 20:08:23それを破壊するような使い方をするなっていうのがgotoは悪派の主張なわけで、
機械語に落ちれば全部jmpだろってのはあんまり関係ないよな。
まあ、機械語レベルのjmp命令がif等の制御構文と同等のレベルで
読み書きできるような人間にゃgotoだろうがforだろうが関係ないのかもしれんが、
そうじゃない人もいるんでそういう人も思いやってくれよということで。
0097デフォルトの名無しさん
2006/09/28(木) 07:51:362.gotoはなるべく使わない方がいい
初心者に教えるなら1の方が正しいと思う。
0098デフォルトの名無しさん
2006/09/28(木) 08:24:3092年ごろこんな事やってた。
// ポートからマウス移動量を取得
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のコードだが、今となってはよく分からん。
見ての通り組み込みに近い処理なので、こういうウェイトが
必要な場合もあったんだろうな、たぶん。
0099デフォルトの名無しさん
2006/09/28(木) 19:48:42要するにnop代わりにgotoを使ったと…結構アレげだな
010098
2006/09/28(木) 20:20:07たぶん、そういう事をやりたかったのだと思う。
gotoはCで書けるけど、nopはasmブロックで書かなくてはならないので
gotoを選択したんじゃないかねー。「念のため」的なコードは書かない
主義なので、このgotoが無ければ動かない機種があったのだとは思う。
14〜15年前の若かりし日のコードなんで詳しい事は思い出せないなw
0101デフォルトの名無しさん
2006/09/28(木) 23:28:51約15年前のキミに言っておきたい。
そのコードにはコメントを入れておけとw
■ このスレッドは過去ログ倉庫に格納されています