- 1 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 20:35:36 ]
- スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。
過去ログ スレを勃てるまでもないC/C++の質問はここで pc11.2ch.net/test/read.cgi/tech/1167476845/ スレを勃てるまでもないC/C++の質問はここで 2 pc11.2ch.net/test/read.cgi/tech/1178503366/ スレを勃てるまでもないC/C++の質問はここで 3 pc11.2ch.net/test/read.cgi/tech/1187521676/ スレを勃てるまでもないC/C++の質問はここで 4 pc11.2ch.net/test/read.cgi/tech/1221633708/ スレを勃てるまでもないC/C++の質問はここで 5 pc11.2ch.net/test/read.cgi/tech/1230516307/ スレを勃てるまでもないC/C++の質問はここで 6 pc11.2ch.net/test/read.cgi/tech/1231564903/ スレを勃てるまでもないC/C++の質問はここで 7 pc11.2ch.net/test/read.cgi/tech/1232983248/ スレを勃てるまでもないC/C++の質問はここで 8 pc12.2ch.net/test/read.cgi/tech/1235921779/ スレを勃てるまでもないC/C++の質問はここで 9 pc12.2ch.net/test/read.cgi/tech/1240022781/
- 458 名前:デフォルトの名無しさん [2009/05/31(日) 13:25:55 ]
- ある動的配列の要素全てが0以下である
をループを抜ける条件としたいのですが、何か良い方法はありますか? 今はforで要素全てを判定させて、全て0以下なら 変数aを1、このaが1ならループを抜けるとしています
- 459 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 13:47:38 ]
- O(n)未満の方法はないんじゃないかな
なのでその方法がベスト もし、STLに関数型言語のforallやexistsのようなものがあれば 記述的に楽は出来るだろうが やる計算的には>>458の方法と同じになるし
- 460 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 13:49:41 ]
- Pstade.Ovenライブラリを使って
oven::forall(xs, _1 <= 0) を終了条件にすればいい ただしxsは対象である動的配列の型で、かつ xsの型がsingle pass rangeのコンセプトを満たす必要がある vectorやlistはこのコンセプトを満たす
- 461 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 13:52:40 ]
- >>458
それでいいんじゃないの? あまりにも大量のデータを頻繁にチェックするというのなら、 配列に書き込む時点で値が0以下かどうかチェックするという方法もあるけど。 (配列への書き込みが大量に発生するようだと、これも効率的でなくなるが)
- 462 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 13:58:53 ]
- while( !isAllNegative(array, size) ) 〜;
isAllNegative(int *array, int size){ for(int i = 0; i < size; ++i) if(array[i] >= 0) return false; return true; }
- 463 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 14:00:15 ]
- ああ、そのほうが良いな。アホだった
あと、そのプログラム、条件>=じゃなくて>にしないと
- 464 名前:458 [2009/05/31(日) 14:31:22 ]
- ありがとうございます!
全部試してみますね
- 465 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 16:34:51 ]
- 他人の作ったクラスを継承するのって危険ですかね?
- 466 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 16:37:52 ]
- 継承する想定で設計しているならそうでもないんじゃないの。
まぁ作った奴のスキルがどれだけ信用できるかだが。
- 467 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 16:56:40 ]
- 自分で定義したクラスでも意識してないと
Liscov Sutstitution Principleは簡単にぶっ壊れるのになにをかいわんやだ
- 468 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 17:06:56 ]
- プライベート継承しただけで壊れるんだっけ
- 469 名前:デフォルトの名無しさん [2009/05/31(日) 17:09:19 ]
- 女でプログラマは何割くらいいますか?
- 470 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 17:32:53 ]
- 一割いないね。
- 471 名前:デフォルトの名無しさん [2009/05/31(日) 17:42:00 ]
- トンクス
- 472 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 17:42:25 ]
- 女でプログラマで美人で性格いい人は何割ぐらいいますか?
- 473 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 18:55:38 ]
- 本当に人口の半分は女なのか疑わしくなってくる
- 474 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 18:59:10 ]
- 女優遇社会だからな。酷い男社会とは別の贅沢な環境で生活してるんだよ。
- 475 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 19:06:42 ]
- 主夫になりたい
- 476 名前:デフォルトの名無しさん [2009/05/31(日) 19:18:18 ]
- 前にも質問したんですが、メモリをファイルに見せかける方法か、
ramディスクを動的に生成する方法ありますか。
- 477 名前:デフォルトの名無しさん [2009/05/31(日) 19:21:25 ]
- DOSコマンドでファイルへ出力するものを直接メモリに入れたいのですが。無理でしょうか。
標準出力ではなく、ファイルへの出力の場合です。
- 478 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 20:06:40 ]
- mmapとか、MapViewOfFileとか、その辺を調べるといいかも。
ただし俺だったら出力関数にファイルに出力するかメモリに書き込むかを 指定するフラグをつけるけどな。
- 479 名前:デフォルトの名無しさん [2009/05/31(日) 20:08:14 ]
- >>476
メモリマップドファイルというのがある それ専用のWindowsAPIがあるから、他でもOSレベルのAPIがあるんじゃね
- 480 名前:デフォルトの名無しさん [2009/05/31(日) 20:12:08 ]
- ファイルをメモリのように扱うのではなく、
メモリをファイルのようにしたいのですが。 メモリを借りてきて、Zドライブを作るとかです。 普通のドライブのようにアクセスする方法はないですか
- 481 名前:デフォルトの名無しさん [2009/05/31(日) 20:14:51 ]
- えっ
- 482 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 20:14:55 ]
- ---hoge.h---
class Hoge{ public: メンバ関数; private: void *mMember; }; ----------- --hoge.cpp-- namespace{ struct Member{hoge hg}; //コンストラクタでmMember = (void *) new Member; アクセスは(Member *)mMember privateメンバ関数の代わりの関数; } メンバ関数; ----------- めんどくさそうだけど、カプセル化にこだわるならこんな感じのほうがいいんでしょうか?
- 483 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 20:18:54 ]
- >>480
RAMディスク Windows とかでぐぐれ。
- 484 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 20:21:30 ]
- >>482
こだわるならそんな感じだけど、そこまでこだわる必要があるケースは稀。
- 485 名前:デフォルトの名無しさん [2009/05/31(日) 20:21:33 ]
- RAMディスクをプログラムが動いているときだけ生成して、終了したら解放する方法はないですか?
既存のDOS EXEで、出力がファイルのやつを直接メモリに格納して高速化したいです。
- 486 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 20:25:52 ]
- RAMディスクつくるソフトを制御して
起動時にRAMディスク作らせて、終了時にRAMディスク開放させればいいのでは?
- 487 名前:デフォルトの名無しさん [2009/05/31(日) 20:29:44 ]
- 汎用性がある方法はないですか
ソフトをインストールしてもらわないと出来ません
- 488 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 20:40:26 ]
- 単に、バーチャルなファイルシステムをかますだけでしょ。作った方が早い
- 489 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 20:43:05 ]
- USBカメラから画像を取り込みたいんですが、よくあるUSBカメラを使うソフト
とかってどうやってるんでしょうか?
- 490 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 20:58:48 ]
- 既存のDOS EXEって何よ?
- 491 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 21:14:14 ]
- >>489
USBカメラがそうなっているかは分からんが、TWAINという共通化インターフェースがある
- 492 名前:デフォルトの名無しさん [2009/05/31(日) 21:19:51 ]
- カプセル化という物を勉強したのですが、一度しか使わない計算でも
関数を定義して別ファイルに値を渡し、戻り値をmainに渡すようにしたほうがよいのでしょうか?
- 493 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 21:22:02 ]
- ありがとうございます。TWAIN初めてききました
直接カメラのドライバをたたいてるのかと思ってたけど、こんな便利なのがあったんですね
- 494 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 21:34:23 ]
- >>492
必要に従いカプセル化する。何でもかんでもカプセルにして密閉化すると。 オブジェクト指向原理主義者になるw
- 495 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 21:39:04 ]
- >>492
突き詰めると決着が付かないような議題 個人的にはほんの数行(最大4行ぐらい)で、そこでしか計算しないんだったら埋め込む ただ >関数を定義して別ファイルに値を渡し、戻り値をmainに渡す が何を言ってるのかがわからなくて心配
- 496 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 21:51:10 ]
- >>492
それはカプセル化というよりはリファクタリングに関係してるように思う 俺の場合、ある処理を2回行うようになった時点で関数化する 逆に1回しか使う場所がないのに無駄に抽象化した関数は定義しないようにしている C++の抽象化能力では、これは常に出来ないのは若干悩みの種 カプセル化は、ライブラリのように 他人もそのコードを使うケースで意識すればよいと思う
- 497 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 21:54:50 ]
- >>477
出力ファイル名にCONを指定して標準出力へ出せるようにならない? それで動くなら、あとはリダイレクトできるでしょ。
- 498 名前:デフォルトの名無しさん [2009/05/31(日) 22:01:18 ]
- >>494-496
ありがとうございます 一人だから問題ないのですが、逆に指摘してくれる人がいないのが難点です
- 499 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 00:08:32 ]
- スタイルの問題で答えはないと思うけど、マクロってインデントするべきかな?
#ifndef CLASS namespace Name { class Class { public: foo bar(); #ifdef _DEBUG hoge fuga(); #endif } } #endif #ifndef CLASS namespace Name { class Class { public: foo bar(); #ifdef _DEBUG hoge fuga(); #endif } } #endif 悩む・・・
- 500 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 00:26:03 ]
- #ifndef CLASS
なんたらかんたら # ifdef _DEBUG なんたらかんたら # endif /* _DEBUG */ なんたらかんたら #endif /* CLASS */ とやるのが普通かな。 プリプロセッサディレクティブは、行の先頭を#で始めなければならない。 規格のどのセクションだったかもう覚えてないけど。 フリーソフトウェアのソースを読んで勉強したら良いかもしれない。
- 501 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 00:53:26 ]
- そう?
手元のANSI C言語辞典には#の前に空白類があってもよいと書いてあるけど。 もちろんそんな書き方誰もしないということは同意だ。
- 502 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 00:59:31 ]
- #if foo
#if bar #include <momo.h> #else #include <taro.h> #endif #endif のような例はよくみかける。
- 503 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 01:25:41 ]
- 自分は普段はこう書くな。
#if foo # if bar # include <momo.h> # else # include <taro.h> # endif #endif 行頭に#があったほうが見た目わかりやすいと思う。
- 504 名前:503 mailto:sage [2009/06/01(月) 01:27:01 ]
- #if foo
# if bar # include <momo.h> # else # include <taro.h> # endif #endif こうな。
- 505 名前:デフォルトの名無しさん [2009/06/01(月) 01:36:32 ]
- Windows98のメモ帳でのプログラムの実行の仕方を教えて下さい
因みに入力したのはC言語のprintf何たらの簡単なプログラムです
- 506 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 01:41:44 ]
- 書いたコードをここに貼り付けて、右下のボタンを押せ。
ttp://codepad.org/
- 507 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 05:53:03 ]
- >>502
俺もそう書くわ。 特に多いのが #ifndef __BORLANDC__ 高度な処理; #else 低度な処理; #endif みたいにコンパイラで処理を分けたりとか、あとはデバッグの時かな。
- 508 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 06:27:58 ]
- 1.下の多重ループで「A」は何行何列に表示されるか.
for(j=1;j<=2;j++) { for(k=1;k<=3;k++) { printf("A"); } printf("\n"); } 2.下の多重ループで「A」は何行何列に表示されるか. for(j=1;j<=5;j++) { for(k=1;k<=4;k++) printf("A"); printf("\n"); } 1は2行3列で2は4行5列ですか?
- 509 名前:デフォルトの名無しさん [2009/06/01(月) 07:30:16 ]
- >>506
すみません ネットに繋げてないのでメモ帳での方法を教えて下さい
- 510 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 10:56:47 ]
- >509
別にメモ帳だろうが何だろうが、Cのプログラムには関係ないよ。 もちろん効率とかは違うだろうけど。
- 511 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 11:32:44 ]
- >>509
エスパーすると、コンパイラの使い方がわからないんだろう そもそも509はC言語のコンパイラを持っているのか? 例えばVC,BCC,GCCなど。
- 512 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 12:13:08 ]
- 持ってないだろうねえ。でも、
最初の一歩も自分で踏み出せない奴を どうにか歩かせたところで無駄じゃね?
- 513 名前:デフォルトの名無しさん [2009/06/01(月) 13:27:29 ]
- 最小2乗法によるm次の多項式近似を行うプログラムを教えてください
教えて xがー2の時yが3.02 −1の時0.98 0の時1.22 1の時2.16 2の時2.61 の時のです 出来ればソース全文書いてください
- 514 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 14:16:58 ]
- >出来ればソース全文書いてください
>出来ればソース全文書いてください >出来ればソース全文書いてください
- 515 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 14:20:25 ]
- >>513
マルチすんなカス
- 516 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 16:18:56 ]
- 符号なしenumがほしいんですが、なにか代替案はありますかね?今は
typedef const unsigned long uenum_t; uenum_t foo = 0, bar = 1, hoge = 2 ・・・; みたいに地道に書いて我慢してるんですが 省略記法が使えなくてめんどいし、メモリももったいない気がします
- 517 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 17:25:11 ]
- 半角テキストファイルを読み込んで使用する場合
空白文字も含めて一つの変数orクラスに格納したいんですが どうすればいいでしょうか? というかなぜ空白で一々区切られるのでしょうか? EOFでいいじゃないですか?
- 518 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 17:27:29 ]
- getlineでいいんじゃない?
- 519 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 17:49:17 ]
- getlineって一行だけじゃなかったっけ?
- 520 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 20:39:48 ]
- whileのループをEOFで抜けだし、出力するようにしたのですが、
出力後、プロンプトが出てきません。ctrl+Zで中止しないといけない状態です。 なぜ出てこないのでしょうか? よろしくお願いします。
- 521 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 20:44:30 ]
- ループにでも入ってるんじゃない?
- 522 名前:デフォルトの名無しさん [2009/06/01(月) 22:51:06 ]
- for(a=0;a<3;a++){
for(b=0;b<20;b++){ if(hensu<0){ 処理1; } else{ 処理2; } } } このようなfor文で、処理1もしくは処理2を実行したら 二つのfor文を一度に抜けたいのですが、どうすれば可能でしょうか? 処理のあとにbreakひとつじゃ後のfor文しかぬけないため、また処理1か2を実行してしまうので 困ってます。 goto文?というのはなるべく使いたくないのでそれ以外で何か簡潔にできますでしょうか?
- 523 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 22:55:08 ]
- 俺は普通に終了フラグを作る
- 524 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 22:56:20 ]
- 典型的な「gotoを使うと綺麗に書ける例」だな。
どうしても使いたくないなら ・ループ終了を示すフラグ用の変数を用意しておき、そのフラグの値をチェックして外側のforループから抜ける ・全体を関数にしてしまい、returnで抜ける とかどうか。
- 525 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 22:58:27 ]
- int end = 0;
for(a=0;a<3 && !end;a++){ for(b=0;b<20 && !end;b++){ if(hensu<0){ 処理1; end = 1; } else{ 処理2; end = 1; } } } もしくは関数化して、returnで抜けるとか。
- 526 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:00:31 ]
- 男3人が結婚かよ
- 527 名前:デフォルトの名無しさん [2009/06/01(月) 23:09:54 ]
- C言語の本を買ってきて、printfなるものをWindowsのメモ帳に入力したけど、どうしたら実行出来るの?
- 528 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:12:53 ]
- C言語の本に書いてあるんじゃね?
- 529 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:13:08 ]
- そのC言語の本に実行までのやり方が書いてないなら、
それが書いてある入門本を買いに本屋に走るんだ。
- 530 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:13:10 ]
- そのC言語の本を1ページ目から読み返せ。
それで分からなければタイトル晒して燃やせ。
- 531 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:13:58 ]
- また多重婚だねっ♪
- 532 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:19:00 ]
- 2重のループを無理やり1重のループに変換する
- 533 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:20:52 ]
- aに3を入れる
- 534 名前:デフォルトの名無しさん [2009/06/01(月) 23:21:06 ]
- >>523-524
フラグをつくる場合、>>525さんが書いて頂いたような フラグの仕方が一番コード書く上では綺麗なのでしょうか? 関数化もよさげですね。ただあまり関数を増やしたくないのもあるので 使わずにすむならそっちのが使いたいです
- 535 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:22:34 ]
- フラグと書いた俺はフラグが基本だ。他は好みだろ
- 536 名前:532 mailto:sage [2009/06/01(月) 23:25:30 ]
- 誰も思いついてない方法だから俺様の勝ち
int a, b; for(x=0; x<60; x++){ a = x/20; b = x%20; if(hensu < 0){ 処理1; } else{ 処理2; } }
- 537 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:26:55 ]
- >>536 −見るー> >>532
- 538 名前:デフォルトの名無しさん [2009/06/01(月) 23:29:37 ]
- ・ループ終了を示すフラグ用の変数を用意しておき、そのフラグの値をチェックして外側のforループから抜ける
あれでもこれだと、内側のループをまずbreakで抜けて、抜ける前にフラグをたてて で、抜けたあとに外側をそのフラグでみるということかな? でも外側のループから抜けるってどうやるんだろう
- 539 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:34:46 ]
- 例の通りなら hensuの比較bool だから a=0,b=0 時点で必ずループ終了を要求することにならないか?
- 540 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:35:11 ]
- つうか処理1もしくは処理2は初回で確実に実行されるんじゃないのかfor文いらなくね
- 541 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:36:36 ]
- 俺もそれ思ったwアルゴリズムが変
- 542 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:47:28 ]
- >>534
2重ループくらいなら、あんまり汚くはならんでしょ。たぶん。 実際の書き方は十人十色だろうけどね。 個人的には、forの条件式のところに書くよりは、新しくif〜breakを作る方が好き。 あと、もう1つ。 関数呼び出しにかかる時間が致命的で、少しでも減らしたいというのでもない限り 基本的に関数を増やす方向で進めた方がいいと思うよ。 >540-541 まあ、実際のコードとは違う可能性もあるし、そこは突っ込むほどのことでもないんじゃない?
- 543 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 23:56:17 ]
- >538
すごく単純に書くと for () { for () { end_flag = 1; break; } if ( end_flag == 1 ) break; }
- 544 名前:デフォルトの名無しさん [2009/06/02(火) 00:04:31 ]
- 書いてない
近所にそんな本置いてない Amazon登録(会員?)してない 晒した後に燃やす意味がわからない メモ帳ってテキストエディタだよね?C言語によるプログラムはどうやって実行するの?
- 545 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 00:07:04 ]
- Cの入門書なら絶対に書いてある。
万が一書いてなければ、それは間違いなく悪書なので燃やしても咎められないだろう。 ついでに、同じような被害者を出さないためにも、タイトルを晒しておこう。 くらいの意味。 要約すると、「1ページ目から読み直せ」ってことだ。
- 546 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 00:30:19 ]
- void型のWINAPI関数、ABC()があるとします。
void WINAPI ABC() と VOID WINAPI ABC() には違いがありますか?(voidが小文字か大文字か)
- 547 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 00:34:47 ]
- >546
どっかで、「VOID は void の別名ですよー」って定義されているかどうかによる。 結論から言うと、たぶんそうなってる。
- 548 名前:デフォルトの名無しさん [2009/06/02(火) 00:53:27 ]
- >>542
なるほど。関数を呼ぶと時間がかかるのですか。 かなり高い頻度で呼び出すのでできればはずしたいかな。 書いてなく申し訳ないですが、おっしゃるとおり実際は forで回している変数を処理1,2で使っているので何とか抜けないといけないのです。 見た目で行くとやっぱり関数ですねー。 一気にfor二個抜けるbreak2みたいなのがあればいいですね(笑)
- 549 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 00:58:34 ]
- >548
>関数を呼ぶと時間がかかる それこそ1/60秒間に1000回呼ばれ、マシンの性能の極限まで詰め込みたい……とかいうのでもない限り 普通に関数使っとけw
- 550 名前:デフォルトの名無しさん [2009/06/02(火) 01:00:46 ]
- goto文使ってたり多重ループがあるだけで、
コードレビューが合格にならないキチガイISOマンセープロジェクト って、この世からなくなればいいのに
- 551 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 01:29:22 ]
- >>522
for(〜){ for(〜){ if(hoge) break; } if(hoge) break; }
- 552 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 01:42:18 ]
- そのループ処理を関数に切り出して、
抜けたいところで return してしまうのも一つの手。
- 553 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 01:55:55 ]
- >551-552
実際の質問の直後のレスを見ようぜ
- 554 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 03:49:46 ]
- go to文は有害だよ
どんなネストごちゃまぜなソースでもちゃんと普通に抜けだすコード書いたほうがいい go to文はあとから見た時可読性が著しく落ちる まじで
- 555 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 03:53:11 ]
- その部分をまるっと関数化してreturnで抜けだすのと
gotoにそこまで違いがあるのかどうかw
- 556 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 04:01:36 ]
- for(a<3){ for(b<20){
if(){if(hensu){}else{},a=3;continue;} }} // bループの外に処理があるなら }if(a<3){ }} で十分じゃないの?
- 557 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 04:02:07 ]
- >>554
フラグ変数とか多用されるよりgoto使ってくれた方が追うの楽だし、 そもそもgotoつかえば深いネストしなくて済むことも多い。
- 558 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 04:05:36 ]
- フラグ変数を使って深いループを抜ける事は、仮想関数を
使うべき所にswitch文やif文で多重にネストした醜いプロ グラムを連想させる
|

|