1 :
仕様書無しさん :
2007/04/27(金) 18:06:28 かわいいよな
な、なによ!
3 :
仕様書無しさん :2007/04/27(金) 18:45:33
判定が空式でfalseなのでループは1回も実行されないのでは?
4 :
仕様書無しさん :2007/04/27(金) 18:47:38
5 :
仕様書無しさん :2007/04/27(金) 19:55:25
>>3 ;; は not equal null を表現します
どっちがいいんかね
8 :
仕様書無しさん :2007/04/27(金) 22:18:41
for(;;)の方が好き。 あとで無限止めたいときも楽だし。
9 :
仕様書無しさん :2007/04/27(金) 22:38:01
forの方がスーパーセットなわけですよ。
スーパー・・・セッ・・・ト ?
11 :
仕様書無しさん :2007/04/27(金) 23:14:31
1000回まわったら抜けるとか保険入れる奴はヘタレ
昔は、while だったが、 今は警告でないように、for 使うよ。
13 :
仕様書無しさん :2007/04/27(金) 23:24:37
へ〜、今警告出るんだ? 感覚的に言って、forは回数制限ループ用なんで、ちょっと気持悪いかな。 while(TRUE)とかなら、無限ループ宣言って感じがしていいけど。 なんでアラート出るの? 無限ループみたいだから? それならforでも出ないとおかしいと思うけど。
vc++ で警告を最大にした場合のみだけどね。(gccではでない) 理由は、条件式 が定数だから。
15 :
仕様書無しさん :2007/04/27(金) 23:50:47
ていうか、そんなの使う場面に出会ったことが無いです。 ポーリングしてんの?
グーグルコードサーチ while (1) 約5,080,000件 for (;;) 約817,000件 while の圧勝
for(;;)は一部のプロフェッショナルしか使ってないからなぁ
18 :
仕様書無しさん :2007/04/28(土) 00:20:39
19 :
仕様書無しさん :2007/04/28(土) 00:23:42
>>14 へぇ。forの条件式は「空」だから定数じゃないって扱い?
まあ、ミスの起こりやすさに応じて設定されているんだろうね。
>>15 終了条件が複数ある場合とかじゃないかな。
>>19 for(;;)は
初期化:何もしない
継続条件:何も判定しない
再初期化: 何もしない
だから、定数かどうかとは根本的に違うよね。
というか、なんというか
無限ループは甘え
for (;;) で回して switch () で分別して break; とかよくやります。。。
22 :
仕様書無しさん :2007/04/28(土) 00:30:37
>無限ループは甘え なんで?
23 :
仕様書無しさん :2007/04/28(土) 00:38:46
>>21 Cだと、switchの中でbreak;しても、switch抜けるだけだと思うけど。
何の言語?
24 :
仕様書無しさん :2007/04/28(土) 00:40:32
組み込みのメインループの先頭には必ず存在するものだが?
25 :
仕様書無しさん :2007/04/28(土) 00:41:42
26 :
仕様書無しさん :2007/04/28(土) 00:42:51
あ、すまん。
無限ループの事ね。
俺も組み込み(というかレジ)の初期化ルーチンの時に見たことあるわ。
>>20 の言っていることはわからんね。
しまった! まぁ、if () をズラッと並べてるんですけどね。。。
28 :
仕様書無しさん :2007/04/28(土) 00:53:08
>>27 だよね。
ならわかる。
レジで見たから。
while(for(;;))は? あ、ダメだ。for(;while(1);)は?
30 :
仕様書無しさん :2007/04/28(土) 01:02:59
無限ループが甘えと言ってるやつの意味が分からん。 アホか?死ねよ。
31 :
仕様書無しさん :2007/04/28(土) 01:04:21
>>29 くだらなすぎて考えたくもないが、ループを一回実行してからフリーズじゃないか?
>>30 まてまて、無限ループを全否定してるわけじゃないんだ。
そんな真剣に否定しないでおくれよ。
確かに構造化は崩れちゃうし事故の素だけど、
けどそれを忍んでbreak使って制御なんて俺だってよくやるし、
半永久的に待ちなプログラムには必須だと思うよ。
つーかネタだから笑い飛ばしてくれればよかったのに。
ごめんなさい。
33 :
仕様書無しさん :2007/04/28(土) 01:26:15
意味分からん。 ネタとしてもどこが面白いのか分からん。 分かってないのに格好いいこと言おうとして 詳しい奴にマジレスで突っ込まれて、 たじたじして お茶を濁して逃げたようにしか見えん。 しかも言い訳が美しくない。 「よく分かってなかったのに格好つけちゃいました(笑」 とでも言えばかわいげもあるのに。
一味違うプログラマになるなら while(2)
>>33 これだからマジレスは困る。
のに俺からまたマジレス。
下手に出てりゃいい気になりやがって...
詳しいヤツにマジレスで...ってどの辺りがだよ。
>>24 か?そんなもん常識だろ。
組み込みなんて学生の頃センサ系制御ちょっとやったかな?
くらいの全然詳しくない俺でも知ってる程。
と顔真っ赤にして書き込む俺であった。
for (;!8 ^0^ 8;)
37 :
仕様書無しさん :2007/04/28(土) 02:32:58
38 :
仕様書無しさん :2007/04/28(土) 02:40:42
自前メッセージループ書かせられる羽目になった時点で終ってるかと。
39 :
仕様書無しさん :2007/04/28(土) 02:47:35
エリート登場w
while ("無限ループ")
41 :
仕様書無しさん :2007/04/28(土) 02:56:54
while(1); { }
42 :
仕様書無しさん :2007/04/28(土) 02:57:58
>>40 深いな・・・
どんな文字列が真で偽なんだろうな
>>35 この板で正論は時に諦めも必要
全部分かっててつまらんボケかましてんだよ33は
>38 WinSDK…
do { }while(1);
do { }for(;;);
while(1){ return; }
while(65536);
>>42 式中では先頭ポインタ値として評価されるから、NULL以外なら真にしかならないよ。
50 :
仕様書無しさん :2007/04/28(土) 20:06:40
for(;;)ってなんか気持ち悪いよね。コード的に美しくないよこれ。
誰もK&Rで使われているのがfor(;;)だって言わないんだな。
#define EVER /* */ for(EVER;;){ }
53 :
仕様書無しさん :2007/04/28(土) 21:58:32
>>50 for( ; ; )
銃を右こめかみに当てて泣いてる人のようにも見える。
間違いなくこれはプログラマの未来を暗示。
どっち使ってるかでレベル(経験)がわかるな
55 :
仕様書無しさん :2007/04/28(土) 22:28:44
さすがにgoto使ってる奴はいないね。
Suisui解任動議 今現在 解任賛成 : 27 (42.2%) 解任反対 : 37 (57.8%) 票差 : 10 合計: 64 賛成票が増えて42%になりました。 もし反対票がなければ、あと11票(8%超)の賛成票が集まればsuisuiは解任になります。 投票期限まで あと 4 日 投票期日 : 2007年5月2日 (水) 00:02 (UTC) まで (注意! : 日本時間では2007年5月2日 (水) 09:02 までが投票期日となります!) 彼を解任させたいかさせたくないかを考えるまであと4日あります。 議論まとめページを良く読んでじっくり考えましょう。 なお、この解任は、彼をメタウィキのスチュワードという 役職から解任させるものではありません。 日本ウィキペディアでの管理者という役職を解任させる是非を問うものです。 2chでのデマに惑わされないよう要注意して下さい。
Suisuiって誰だ?
無限ループするようなコードを書いてる時点で終わってるだろ 発想が貧困
>>57 今泉誠という眼鏡を掛けた30代の人です。IPユーザ広域ブロックで批判されています
>>58 つまりWindowsは終わってると・・・
>61 OSに本来求めない機能を重視し始めたからなぁ
WindowsはOSの本来必要な部分で無限ループを使用してるわけだが
>>58 はgotoじゃなくContinuationを使ってループを実現しろと
いっているんだ。ううん、知らないけど絶対そう。
末尾再帰かもしれん
66 :
仕様書無しさん :2007/04/29(日) 20:58:16
while(1)W どう考えてもfor(;;)の方がかわいいだろ。
67 :
仕様書無しさん :2007/04/29(日) 21:03:01
while(-1)派がいないのに愕然とした
while(" 1回だけ実行! ") { // ちょっとしたフェイント }
69 :
仕様書無しさん :2007/04/29(日) 23:14:52
70 :
仕様書無しさん :2007/04/29(日) 23:33:11
71 :
仕様書無しさん :2007/04/29(日) 23:38:36
while("無限ループ") { // 解読にちょっとした分かりやすさ }
73 :
仕様書無しさん :2007/04/30(月) 00:39:55
>>72 コメントに「無限ループ」って書いた方が早いだろ(笑
なぜforを使うのか知らない
>>1 が一番かわいいと思う
無限ループを書くことなんて常駐ループ以外にほとんど無いんじゃまいか? 流れが決まっている業務処理のコーディングで無限ループ書いてる奴とか ちょっと反省しれ
76 :
仕様書無しさん :2007/04/30(月) 10:17:44
77 :
仕様書無しさん :2007/04/30(月) 10:19:40
コボルなんぞ読まんし
条件breakで抜けるようなのは アルゴリズム考えずにゴリゴリ書いてるだけ
80 :
仕様書無しさん :2007/04/30(月) 10:22:18
81 :
仕様書無しさん :2007/04/30(月) 10:24:19
GWだな〜
>>81 はいはい、どうぞこれからも低性能なコーディングを続けてくださいね
84 :
仕様書無しさん :2007/04/30(月) 10:35:23
どんだけアホですかW お前の発想、全然かわいく無いよ。 どうせゲッティーばっか作ってる感じですか?
>>72 の思考:実行ファイルの解読に配慮
>>73 の思考:ソースファイルの解読のみ想定
>>84 うんうん、がんばれな
じゃあバーベキュー行ってくるんで
天気いいからおまぃも外に出ような
じゃな〜
87 :
仕様書無しさん :2007/04/30(月) 10:46:09
>>85 はどんだけバカなコンパイラ使ってるんだろう?
88 :
仕様書無しさん :2007/04/30(月) 10:49:08
PGってこういうの好きだよね
89 :
仕様書無しさん :2007/04/30(月) 10:50:14
一人BBQってカワイクね?
for(;;){ static int i = 0; printf("狂った世界"); if(++i == 255) break; }
for(int i = 0; i != 65535; i++){ printf("狂った世界"); }
「Suisuiの留任」 をNGワードにしたよ 専ブラって便利だな
DO While DoEvents Loop 無限ループといえばこれしか考えられない
label: printf("無限ループ\n"); goto label;
無限に回した事なんか無いくせに。
int i = 0; label1: printf("有限ループ\n"); if(i != 2147483647){ goto label2; } goto label1; label2:
>>97 何を言ってるんだ
この宇宙がそもそも無限ループだというのに
>>99 無限じゃあないってさ。long long らしいよ。
宇宙は0と無限を乗じた任意の定数。 これを矛盾という。
保守
for(;;) printf("無限ループ"); じゃいけないの?
君は頭がイイねぇ
while("Unlimited Loop") { // do something... }
Unlimitedって限定解除の意味にならんか。 "Endless Loop" にしたほうがよくはないか。
void playNow(){ try{ while(1) { printf("アッ"); playNow(); } }catch(...){ printf("アッーーー!!\n"); } }
for(;;)はwhile(1)よりタイプが少なくてイイ そんだけ。
ならばタイプが最小となるようなdefineマクロを作成すればもっとイイかと
#define だけで7回もタイプしなきゃいけないし
113 :
仕様書無しさん :2007/07/03(火) 15:06:28
CとかC++って、空行は非ゼロなの?
>>113 終了条件のない for が「無限ループの為の構文」なのは
while / if / switch で式を省略するとエラーになることから
容易に推測できそうなもんだが。
115 :
113 :2007/07/03(火) 15:43:57
>>114 そうなの?
1;
とか
;
とかと同じ構文だと思ってたんだけど、これらと同じではないの?
>>115 セミコロンの意味も違う。
普通は「文のターミネータ」、for の括弧内では「式のセパレータ」。
117 :
113 :2007/07/03(火) 16:03:19
ああ、やっとわかった。 whileなどは 式 を必要として、forは3つの 行 を必要とするのか。 つまり ; は文のセパレータ(つまり他のところと一緒)で合っている、と。 そして全ての 行 は値を持ち、デフォルトは非0なのね。
違う。forは3つの式を必要としていてそのセパレータがセミコロン。 かつ、forの式はどれも省略可能。
#define _ 1 for (;_;) { }
120 :
仕様書無しさん :2007/07/03(火) 18:56:49
>>119 #define T_T 1
while (T_T) {
}
と並んで古典ネタだよな。
とりあえず
>>113 =117は式と文の違いからやりなおしだな。
bWhileBreak = 1; while( bWhileBreak ){ } こうしてる。 1 って定数で廻す気がしない。
>>123 つまらんことはやめろ。
・変数が増えるので全体の煩雑さ増加に加担。
・変数の状態に気を配る必要が出て負担に。
一方、while(1) なら
・変数は増えない
・つねにtrueで心配無し
さらに for (;;)なら
・1という数字さえ追い出せる。
別に構わんだろ。 その変数の有効範囲が一覧できるなら。
>>125 (´・д・`) ヤダ
・変数名に疑問がわく
せめてunlessBreakでは?
などと言われたくなければfor (;;)になさいな。
>>126 たしかに、あれは変だな。(自分で書いてなんだが
>変数が増えない
ipcや共有メモリで制御する場合に必要。
変なところでフラグ管理してbreakかますより安全。
>常にtrueで心配なし
後で書き直すのメンドクサイ。
自分しか使わないハックなやつなら異論は無い。
unlessBreak でも !bWhileBreak でも !bRakeFlagでもいいが。
for(;;)にするぐらいなら for(unlessBreak=1; unlessBreak; )にするわい。
(;;) ←だれかこいつに名前を付けてあげよう。
いっそ、goto文使うのと、何が違うのかと、小一時間・・・
可読性: while(1) >>>>>>>>>>>>>>>>> for(;;)
どちらを書いても「この書き方嫌い」という奴が出るので、 表記を統一しようというアホルール登場!? #if I_LOVE_WHILE #define forever while(1) #else #define forever for(;;) #endif //... forever { puts("無限ループって怖いよな"); }
>>128 #define ever (;;)
for ever {
}
ということでeverちゃんで。(everたん?)
フォーエバーか。上手い事言うな。
134 :
仕様書無しさん :2007/07/04(水) 13:29:38
>>127 ハァァ?? さっぱり意味が分からん。
> ipcや共有メモリで制御する場合に必要。
> 変なところでフラグ管理してbreakかますより安全。
ipc?(ぐぐってみたけどプロセス間通信?)
それとどう関係があるの?ループの書き方の話と。
ひょっとしてその変数はゼロを入れたりすんの?
> 後で書き直すのメンドクサイ。
ハァァ??
while (bWhileBreak) {}
:
while (bWhileBreak) {}
:
って沢山あって、bWhileBreakにゼロか非ゼロか入れたりすんの?
一度もループしないか、無限ループか、そんなもんがありうるの?
>>130 無限ループがwhile(1)かwhile(0)かど忘れするヘタレなおいらはfor(;;)派。
無限ループの話をしてるのに、スレタイも空気も読めないコテがいますね。
for は一定回数ループさせる while は条件を満たすまでループさせる ってのが頭にあるからforでの無限は考えたことが無かったな whileでも(1)は使わないで変数に真値を入れてまわしている 処理中でも所々にデータチェック入れて異常値ならループ抜けるようにしている 異常値になる事は無いとしても小心者だからヽ(´―`)ノ
上の補足 ループ抜けるにしてもbreakやcontinueを使わないで変数に偽値入れて抜けさせてる
>変数に偽値入れて抜けさせてる Pascalではコンパイルエラー。
ループカウンタをいじるってのは むしろ汚いコーディングの部類だよな
>むしろ この部分不要。
ここの住人って綺麗なコード書く人が多そうだねヽ(´―`)ノ で、ここってコードを綺麗に書く自慢のスレですか?
自慢じゃなくて、モラル。
こういうとこからキッチリしていかないと、 煩雑さはどんどん忍び寄ってくる。 そしてそれは人やプロジェクトを壊す。
割れ窓の理論だね。
要するに、例外処理だろ?
なにが要するに、だよw
割れ窓理論は「達人プログラマー」で初めて知ったが、 なんで The Pragmatic Programmers をこういう邦題に したんだろ。
ロジックとして特定の変化があるまでループをし続けるアルゴリズムを 「無限ループ」と呼ぶのに抵抗がある。 自分の感覚では「無限ループ」っていうのは「陥って抜け出せなくなってしまった状態」であって ループから出るための変化が起きるのを待っている、というのを「無限ループ」とは 何でか言いたくないんだよな。
真偽判定が0かそれ以外か、という時点で古めかしい言語仕様だよな。 1とか定数で使いたくない俺はfor(;;)派。
月までしか伸ばしたこと無いのに無限拳っていうのと変わんないよ
ループとそれを実行するスレッドを分離して whileの条件判定でスレッドの生存を確認するようにすれば無条件ループにならないよ>< これならおkですよね?
>>134 ある。 単に「逃げ道」はあるが
抜けるための条件を満たさせる処理が
ループしてるプロセス側等で持っているわけじゃない。
>>136 『whileもforもどっちでもいい』
どっちも可愛いので問題ない。
やや定数を書かないで済む for(;;) 寄りではある。
while (1.5) {}
while("無限") /* something */ ;
#define forever() for(;;)
while("1回だけ")
while (777) { }
>>158 は、
while("何もしないから、ね?")
みたいなもんか
while("先っぽだけ")
>>161 それじゃいつまで経っても先っぽだけだぜ
下らん議論に今終止符が打たれる! loop: goto loop;
すくなくともCでは無条件ループはwhile(非0)ではなくfor(;;)が文法的には正解に近い。 なぜならwhileの条件は省略可能ではないため常に真となる条件を評価しなければならないが、 forの2番目の条件部分は省略可能であり省略された場合は常に真とみなされ、評価は行われないから。 いまどきのコンパイラにかかればどっちでも同じ結果になるだろうけど。
>>164 > いまどきのコンパイラにかかればどっちでも同じ結果になるだろうけど。
んなもん、15年前のコンパイラだって真っ先に最適化してくれる。
大事なのは、(あまり分かってない)人間にとって、どちらが誤解なく
受け入れられるかということ。
確かにfor(;;)の方が誤解は少ないな
>165 最適化については期待できないコンパイラが世の中には山ほどあることも忘れちゃいけない。
日立を愚弄する気か貴様!
何いきり立ってるの?
HITACHIには技術は無いけどそれを補って余りある愛が満ちてる
171 :
167 :2007/07/07(土) 20:49:45
日立とか一言もいってないのに…なんでわかったんだろ?
どれだけ最適化をしようとここで浪費した時間は誰にも取り戻せはしないのだ
三脚は1脚2脚と数えるよ
てっきり3脚6脚…って数えるものだとばかり思っていました。
あーboost::for_eachとか使ってループ撲滅したい
for (;;) {} の方が俺は好き。 while (1) {} は見ててムカムカする。本来条件を書くための 場所に定数を書くとは何ごとか。と言いたくなる。
#define FOREVER 1 while(FOREVER) こう書けば意図が明確になりさらに詩的な感じがしてはこないだろうか
while ("賽の河原で積み石") こう書けば意図が明確になりさらに宗教的な感じがしてはこないだろうか
while("怖くね?")
>>177 お前のようなやつには途中にコレを入れてやる。
#ifdef FOREVER
#undef FOREVER
#define FOREVER 0
#endif
>176 いやぁ、あなたみたいなコンパイラ、多いんですよ。そんな些細なことにwarning出さなくてもいいのに。
>>180 よーし、パパ グローバル定数定義しちゃうぞー。
const int FOREVER = 1;
コンパイラに文句は言わせねぇ! int Forever(void) { return 1; } while (Forever()) { }
for (int i = Forever(); i < 5; ++i) { } 永遠なんてこれっぽっちさ...
185 :
183 :2007/07/10(火) 00:39:06
あああああぁぁぁ…… 俺の永遠がああああああっっっ……
void forever(void); void forever(){forever();}
>>186 それじゃ、そもそも永遠にならない。
早晩、スタックが果てる。
永遠なんてこの世に無いってことを示してみた ギオン・ショージャー
#ifdef I_LOVE_FOR #define loop for(;;) #endif #ifdef I_LOVE_WHILE #define loop while(1) #endif loop { puts("これで解決"); }
191 :
仕様書無しさん :2007/07/10(火) 11:32:04
forever: goto forever;
for(;;) 悲しみのために
193 :
仕様書無しさん :2007/07/10(火) 14:29:21
for ( ;(ェ); )
194 :
仕様書無しさん :2007/07/10(火) 15:07:06
愛が永遠かは試してみれば分かる。 iとか日本でしか通じないから国際標準のLOVEを用いる。 for ( ; LOVE; ) { } LOVEを数値で定義するとすると、ゼロの意味を持っているので、 その定義は #define LOVE 0
for (´;ω;`)
#define _ ... for(;_;)
for ever don't cry.
泣くの止めたら帰れるのに
201 :
仕様書無しさん :2007/07/12(木) 09:05:39
>>200 素敵発言キタワァ*・゜゚・*:.。..。.:*・゜(n‘∀‘)η゚・*:.。. .。.:*・゜゚・* !!!!!
int i=1; while(i){ }
while(true){} C#だとwhile()の条件にbool以外渡すと怒られる
そんな特定環境向けの特殊な言語の事を自慢げに語られても困る
「特定環境」がデファクトスタンダードとは是如何に。
windowsはデファクトでも.netはデファクトとは今の状況じゃ言えない。
デスクトップ・サーバシェアがもうじき50%を突破するVistaのカーネルは.NETで書かれているわけだが。
>>208 >デスクトップ・サーバシェアがもうじき50%を突破するVista
( ゚Д゚)
>Vistaのカーネルは.NETで書かれている
( ゚Д゚)
素数発言わろす
while("デスクトップ・サーバシェアがもうじき50%を突破するVista") { while("カーネルは.NETで書かれているわけだが") { puts("。"); } }
流石にカーネルは.NETじゃないなw 確かVistaはウィンドウ内へのコンポーネントの配置や描画のAPIが DirectX経由してるんじゃなかったっけ? エディションによって違うのかも知れんが
while(1) 使いまくってる。。。 しっくりこないけど、for(;;)に乗り換えるか。 既出だけど、VCで警告レベル最大にするとwarningで怒られる。 if (0 == i) はもっと気持ち悪い上、変数同士の比較には使えないから 警告出さん訳にはいかんし。。。
214 :
仕様書無しさん :2007/08/21(火) 22:40:29
#define _ ... for(;_;) が今んとこ一番可愛い。
#define ToT ;;
|@ c D) |@
while(1){ printf("寿司食いたいフフフフフフフフフフフ"); }
r(;;) ←頭を掻くアシカ
return ('^')? x:y ;
orz=3=3=3=3=3 ;
222 :
仕様書無しさん :2007/10/01(月) 14:37:10
c++++++++++++++++++++++++++++++++++++++++++++++++++++++;/* 終了 */ c++++++++++++++++++++++++++++++++++++++++++++++++++++++;
for(;;)にマジレス突っ込めるくらいでないと、業界で生きのこるには難しい。 何しろ「泣き顔」ってのが良くないね。
224 :
仕様書無しさん :2007/10/01(月) 16:25:11
if((i=j=l=m=n=0)==0){};
#define infinity (1) while infinity { } がカコイイと思った
double x = infinity; とか書いてみて混乱させるのが通
タイプ量をわざわざ多くしてどーする
>>227 { を BEGIN、} を END とdefineするPASヲタもいるでよ
while inifinity じゃ読み下すことも出来ないな…
じゃ #define infinite ; #deinfe loop (1) infinite while loop { ; }
#define zero 0 #define one 1 #define twe 2 ...
twe(w
#define endless loop #define loop infinity #define infinity endless
#define ω #define oO(x) for(;ω;) oO(帰りたい・・・) { }
#undef NULL #define NULL (new char[100000]) 顧客や上司に不満を覚えた場合は こうやって不明なバグを作ってみる
>>233 Perlのラクダ本についてた用語集(1st Ed.限定)を思い出した。
enum { zero, one, two };
enum { zero = -1, one, two };
>>238 これでバグ出ると気づくまでが長そう
(((((;゚Д゚)))))ガクガクブルブル
バグなぞどれも気付くまでが長いんだよ。
何かのコーディング規則で for (;;) を使え、となっているのを見た記憶が あるが思い出せない。for (;;) は極端に嫌う人もいるよね
>>241 思い出せないくらい昔の話なら、それが正解だった時代だと思う。
コンパイラの最適化の話で。
whileの構文の{}の中身をサブルーチン化しちゃうくらい昔の話?
現実を診てね
245 :
仕様書無しさん :2008/01/01(火) 12:42:44
while って イモ
246 :
仕様書無しさん :2008/01/01(火) 12:44:03
write って イイ
常に真とか書くの気持ち悪いから僕はfor(;;)派です^^
懐かしいなぁ。 ループ内の条件判定一個なくすだけで実行時間に現れて来る時代の業だ。
アウト
250 :
仕様書無しさん :2008/01/03(木) 18:18:36
中でカウンタを回すならfor(;;)の方がいいような気がする
251 :
仕様書無しさん :2008/01/03(木) 18:23:15
252 :
仕様書無しさん :2008/01/03(木) 21:03:42
>>251 for (;;) のパターンが抜けているぜ!
↑空白
for\s*\(\s*;\s*;\s*\) lang:c
なら17万だぜどっこいどっこいだぜ
>>252 そのままwhile¥s*¥(¥s*;¥s*;¥s*¥) lang:cで調べれば?
17対19だろ だからどっこいだよ
for (i=0; i<10; j++) { }
仕様書: 「文字列の長さが 0 でなかったら」 コード .: if((str.length() == 0) == false)
257 :
仕様書無しさん :2008/03/16(日) 23:56:53
ところでさ、無限ループってこわくね?
258 :
仕様書無しさん :2008/03/16(日) 23:58:17
お前らまだ手続き型やってんの?
#include <stdio.h> #define _ ((i++) <= 10) int main() { int i = 0; for(;_;) printf("もう帰りたい (;_;) \n"); return 0; }
260 :
259 :2008/03/17(月) 00:14:32
関数型でも普通に止まらない再帰を書けるしw
void endless(){endless();}
お前ら、Hoareとかloop invariantとか知らないの?
知らん 語りたかったら語ることを許すから分かるように説明しろ
265 :
仕様書無しさん :2008/03/22(土) 08:12:03
>>265 わざわざ上げてるから語ってるのかと思いきや
お前も結局名前しか知らんのか
役に立たない奴だぜ、まったく
>>266 どっちもVerificationの話だ。わかったらググれ、馬鹿
>>267 わざわざ説明の機会をくれてやったのに二言目にはググれか・・・
お前上司説得したり、プレゼンするの下手だろ?
>>269 おまえは典型的なゆとり脳だな。
これだけヒントが出ているのに自分で調べられんのか、低能。
>>269 そもそも誰が上司だって?wwwう゛ぁーか
>>270 お前は自分の立場をわきまえろ
これは俺だけが知ってるんだぜウシシシと思うならもう黙ってろ
別の俺はお前の知ってる知識を知りたいとは思わんからな
>>271 お前の読解力のなさは底抜けだな
お前が社長でなければお前にも上司がいるだろ?
その上司への説得が下手だろと言ってるんだ
これ以上お前とグダグダやってても埒が明かないんで
もうお前の好きなようにさせてやるからなくなり喚くなり好きにしろ
>>272 > お前は自分の立場をわきまえろ
人にモノを教えてもらおうというお前が自分の立場と能力をわきまえろ。
春だなぁ
275 :
仕様書無しさん :2008/03/27(木) 16:07:22
NGワード: ググ
「お前ら〜知らないの?」って訊く奴は 「不特定多数に対して訊いても、そりゃ知ってる奴も知らない奴もいるだろう」 程度の想像も出来ないんだろうか。のうたりん?
277 :
仕様書無しさん :2008/03/27(木) 19:20:41
馬鹿同士だとつまらん口論で盛り上がれて楽しそうだな
ゲルググって格好いいよね
わからなければまず自分で調べる。これ基本。 この基本が身についていないのは、ゆとり世代。
ゲルググは格好いい。これ基本。 この基本が身についてないのは、ゆとり世代。
何でもガンダムに持ってく世代もたいがいだよ 同世代なのに溶け込めん
何でもゆとりに持ってく世代もたいがいだよ 同世代なのに溶け込めん
何でもレッテル張りすればいいと思ってるのって、頭悪そうだよな。
284 :
俺 :2008/03/28(金) 01:12:46
人の嫌がるであろうソースを書くのが快感 ※煽りじゃないよ。マジで。
結局お前ら、Hoare logicとかloop invariantとかわかったのか?プ
結局お前ら、Hoare logicとかloop invariantとかわかったのか?プリンの事だよ
ほっちゃーん、ほ、ほ、Hoare-----!
んでまあ、ホアーとか何とかはググるからいいとして、 >263 はこれから何を語ろうとしてるのか ずっと待ってんだけど。 全裸で。 なんか講釈たれたかったんじゃないんか? 全裸で。
お前は一体何日間素っ裸でいるんだよ?
今日、ガンダムおっぱいおっぱいの前半終了だから全裸待機ちてるの多いな (・∀・)
無限ループか。 それは確かめたんだろうな?
>>288 お前はリアルで孤独で無味乾燥な生活を送っているおっさんに
よくしってまちゅねーしゅごいでちゅねーくらいの言葉をかけて
自尊心を満足させてあげようとは思わないのか。
>>292 お前はリアルで孤独で無味乾燥な生活を送っているゆとり脳に
よくつっこみまちゅねーしゅごいでちゅねーくらいの言葉をかけて
自尊心を満足させてあげようとは思わないのか。
最近、相手に”ゆとり”のレッテルと貼り付けるとそいつがゆとりになって自分がゆとりじゃなくなると思ってるお子様が多いな
while(TRUE)とwhile(1)ってどっちが多いんだろう やっぱりwhile(1)のほうがみやすいのかな?
while TRUE はどこかで TRUE が定義されてないとダメだし
こっそり #define TRUE 0 とか書いておいて意地悪するンですね。わかります
#define TRUE (1/10 == 0.1) にしようぜ。
そんな意地悪する人ほんとにいるのかな・・?w
これでいいよ #define TRUE ( rand() % 8192 )
呼び出すたびに値が変わるのか
大丈夫、追跡可能だし。
(;;)泣いているみたいだ
フォー
ECMAScript系なら while (Infinity)
#define Infinity 1 こうですね
for(;ever;) のほうが詩的だろう
#define I_wait_you 1 // 私、待〜つわ while (I_wait_you) { .// いつ〜まで〜も 待〜つわ
while(exit){ }
white(christmas){ }
クリスマスは中止になるから、無限ループしないよ?
while(""){} while('0'){} while("\0"){} while(-1){} while((int)getchar==-1){} /* まともに型チェックしてるコンパイラならエラー出るかも */ for(i=100;i=0;i--){} for(i=0,s="\nHelloWorld\n";i;i=s[i+1]){} for(p=0;free(p);p=malloc(1)){} お好きなのをどうぞ。
> for(p=0;free(p);p=malloc(1)){}
どうみても for(p=0;p=malloc(1);free(p)){}
途中で書いてもた。 どうみても for(p=0;p=malloc(1);free(p)){} の間違いだな。
ここにきてそんなつまらんものかかれてもねぇ
#define XD 1 while(XD);
boolean д = true; for(;д;){ System.out.println("でれません"); } boolean ω = true; for(;ω;){ System.out.println("ぬけれません"); } boolean ェ = true; for( ;(ェ); ){ System.out.println("終わりません"); } boolean TдT = true; while(TдT){ System.out.println("帰れません"); }
全角記号が通るコンパイラってヤバいね。
「全角」とかぬかす奴よりはまともだと思うが。
>>321 ウニコード対応だと全角いけちゃうのか。
「プラットフォームがサポートする文字セット」 で、識別名としてそれらの文字セットが使えたとしても 何の不思議もないわけだが。
その言語の識別子名のBNF定義次第
日本語の場合はウニコードやシフトJISやEUCや…と、色々あるから面堂なのさ。
327が頭悪いのは認めるが、コンパイラも文字コードを自動認識してくれないからなぁ。
# -*- coding: utf-8 -*-
>>326 BNFはあくまで表現手段なんで、仕様詳細には
あんまり関係ないので、念のため。
まあ、言いたいことはだいたいわかるが。
言語仕様の一部としてトークンをBNFで定義してある言語はよくあると思うけど。 正規表現の場合もあるかな。
333 :
仕様書無しさん :2008/12/26(金) 14:20:36
('仄')パイパイ
334 :
仕様書無しさん :2008/12/26(金) 23:38:54
正規表現はないだろ
# -*- coding: mbcs -*- ''' 正規表現でトークンを表せてもいいんじゃね? PLYとかでも使えるし。 '''
>>332 だから、それはあくまでも表現でしかない。
BNFだろうが正規表現だろうが、もっと言えば、
英語だろうが日本語だろうが、関係ない。
>>326 は、識別子の仕様次第と書くべきだった。
for ('A`)
大昔の話だが、 while(1)は l1: moveq #1,d0 beq l2 ... bra l1 l2: と展開され、for (;;)は l1: ... bra l1 と展開されたのだよ。 それを読んでいた奴は絶対にwhile(1)は使わない。 まあ、大昔の話だがな。
ほーと思って今見てみた。 void a() { int i = 0; for (;;) i++; } void b() { int i = 0; while(1) i++; } int main() { return 0; } で、該当部分はそれぞれ、 L2: leal -4(%ebp), %eax incl (%eax) jmp L2 L5: leal -4(%ebp), %eax incl (%eax) jmp L5 となってた。 $ gcc --version gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) Copyright (C) 2004 Free Software Foundation, Inc.
LSI C-86 (1993年)でさえ a_:: XOR AX,AX _2: INC AX JMP _2 b_:: XOR AX,AX _8: INC AX JMP _8 とコンパイルしたから、 よっぽど昔の話だな。
この場合の大昔って80年代前半とかだろ
while(1)は「条件が常に真」をコンパイラが特別なコードにしてる訳で、 無条件ループなら「判定条件なし」のfor(;;)の方が正しいような気がするけどね。
確か、なにかのコーディングガイドラインでfor(;;)を使え、というのを見たことがある。 個人的に知ってるfor(;;)反対派の意見としては、条件節になにも書いてないのは 不気味だ、と言っていたな。
出力結果が同じなら、 「周りの声がでかい奴に合わせておけ」って事でFAなんじゃね?
>>343 経験値が低いから不気味に感じるんだろ。
この手の論争は下らない。 好きな方使えばいい。 声がでかくて煩い奴が居るならば、置換すりゃ解決するレベル。
whileの中身がboolじゃないといけない場合、 while(true)に書き直すんだろうか。 というより、forの条件を書かないとtrue扱いになるのなら、 なぜwhile()という書き方は許されないのだろうか。
>>348 どこ(のスレ)で聞いたか忘れたが、3項演算子使用禁止の会社があるらしいぜ。
>>347 だから元々パーフェクトなしようのげんごじゃないってばよー
return !p ? p->foo() : 0; みたいに書きたいから参考演算子は必須。 しかし、参考演算子をネストしていくのは(´・д・`) ヤダ 慣れてる人にはお馴染みなのかもしれんが…。
>>351 p && p->foo() のほうが単純明解という気がしなくもない。
>>347 >forの条件を書かないとtrue扱いになるのなら
いやだからこそ、無限ループのためにわざわざ作られた構文なんだって。
ふと思ったのだが、4項以上の演算子ってどんなんだろうか?
>>351 が気持ち悪いのは同意だが
>>352 はもっと気持ち悪い。perlみたい。
てか
>>351 ってバグってねえか?
return p ? p->foo() : 0;
ならわかるが。
気持ち悪い書き方をした報いが早速出てるって訳だ。
>>355 すまんw ばぐってる、書いた直後に赤面した。
returnを一行にしたいために三項演算子使うの、
俺にとっては少しも気持ち悪くない。
if p return p->foo() else return 0; return が 2 つに分かれるのがよくない。 あるいは、 int r; if p r = p->foo() else r = 0; return r; 変数が増える。 冗長であることを気持ち悪いと思わない奴は好きにしな、って感じ。
>>355 >>352 は C の伝統的、かつまっとうな記述。
>>357 >return が 2 つに分かれるのがよくない。
かどうかは各自あるいは各職場にて判断汁。
>>352 は例えば
while (p && p->foo()) {
...
のように使えるしな。PerlはCからこれを引き継いだだけ。
>>352 351と352はかなり違うだろ。
評価結果を真偽判定に利用する場合は同じだけど。
351の書き方は、難しくは無いが珍しいと思われ。
>>362 Cの話でいいんだよな?
p->foo()の戻り値がintでない場合、?:演算子の
戻り値はその型になるだろ。
ところが&&だったらかならずint。
Cでboolだってwww
つ _Bool
このアホコテまだ生きてたのか
int foo(void){return 2;} struct MyStruct{ int(*foo)() }; struct MyStruct t, *p; t.foo = foo; p = &t; のように定義されてるとき、 p?p->foo():0は2 p && p->foo()は1 になるはず。 (Cにおいて、真偽値を返す演算子は真のとき1, 偽のとき0を返す)
超亀なので書くのも気が引けるが p && p->foo(); って、pが0のときp->foo()ですっ飛ぶだろ
>超亀なので書くのも気が引けるが 別の意味でやめておくべきだったな。
昔、言語仕様とかコンパイラオプションとか壮大な議論になったような記憶がないでもない
放置スレなのに突っ込み早いな 短絡評価って名前は知らなかった。 しかも&&は右から評価すると思ってた。 やべー
msのコンパイラは右から、 gccとかは左から。 だっけ? VBは問答無用だけどな。
それが本当だとしたらおそろしい規格の無視だな。
演算子の評価純度と、 関数の引数の評価順序を ごっちゃにしちゃう奴っているよね
>>379 それだったらごっちゃでおk。w
評価順とか結合規則とか優先順位とか、
ごっちゃにしちゃう奴っているよね。
ていうか、Cの演算子のなかで && と || が特別。
383 :
仕様書無しさん :2010/05/07(金) 17:58:08
C++だと論理演算子やビット演算子を上書きできてデフォルトの演算子の優先順が適用されない罠があるけどな。 こういうのがC++の嫌われる一因だ。
ラベルとgotoを使うのが一番スマートだと思うのだが。 gotoは絶対に使っちゃ行けない教の人でなければ。
386 :
仕様書無しさん :2010/05/08(土) 00:47:55
public static void main(String[] args) { try { main(null); } catch (StackOverflowError e) { main(null); } }
三項演算子、よく使うなぁ。 int i = 0; if (ex == 0) { i = 100; } else { i = 1000; } って書くと、どこかでiが0の可能性があるのかな?、と心にひっかかる。 int i = (ex == 0) ? 100 : 1000; これだとiは100か1000しか入らないという安心感がある。個人的に。 みんな口にはしてないけど見辛いのかなぁ。
じゃあこう書けばいいじゃない。 int i = 100; if(ex) i = 1000;
というか 387 は代入した 0 が使われていないと警告が出るだろ。 i を宣言時に初期化しなければ、その不安は発生せず、未初期化で使われていないかコンパイラの警告をチェックすれば済む。 まあ俺は i を const で宣言して三項演算子使うけどね。 > みんな口にはしてないけど見辛いのかなぁ。 意味不明。
constは使うな。
>>388 確かにそういうなんだけど、そう書けない場合もあって。
class base {};
class A : public base {};
class B : public base {};
base p = (ex == 0) ? new A() : new B();
みたいな。
まぁ使いたくないワケじゃなく、容認してもらいたいだけなんだ。
ただ、どうしても使ってはいけない理由みたいのがあるなら
自粛しなきゃなぁという気持ち。
while('-') for(;;)派だけどな
while(0==0)
while(true) だけどあんまりループは使わんな
for(;;)のほうが早いんじゃないの?
今時のコンパイラなら間違いなく同じコードを吐く、はず。
warning C4127: 条件式が定数です。 が出た
もし、真が0の環境があったらと考えると、for(;;)の方が落ち着く。 あとwhileで!0じゃなく、1と書かれるのがなんか嫌。 5000だろうが0以外なら何使ってもいいのに。
それは規格的に、C言語ではありませんが。
while(!0x0)
while(1)ってpointer->memberを pointer[0].memberって書いてるのと同じ感じでキモイ
while (0==0)
いつだったかマ板のどっかのスレで for(;;)を使って首吊りAA書いたのがいたっけな