- ベストアンサー
ループについて
アンケート的な質問ですが、forの無限ループと、whileの無限ループが、C言語にはありますよね? whileの場合は、while(1)と書きますし、問題ないですが、 forの場合は、for(;;)とかきますよね。 forの無限ループって、顔文字の涙にみえないですか? for文の無限ループって、何が悲しかったのでしょうか? 答えられる方、こたえてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>forの無限ループって、顔文字の涙にみえないですか? 見えますね >for文の無限ループって、何が悲しかったのでしょうか? 本当は無限ループになんかしないで、すっきりとループ脱出条件を 書きたかったのに書けなかったのが悲しいんでしょう。
その他の回答 (4)
- tatsu99
- ベストアンサー率52% (391/751)
>for文の無限ループって、何が悲しかったのでしょうか? そりあ、あーた、無限ループすることが悲しいんですよ。サラリーマンにとってみれば、無限ループって、一生休みなしに働くことですから。
お礼
全体的なまとめとして、たしかに、 for(; ;)については、涙に見えるか、どうかは、人それぞれですね・・・。 プログラミングの休憩として、こういう構文探してみるのも、たまには、おもしろいかも(^^) 今のところ、forの無限ループしか、思い当たりませんが、みつけたら、また 書きます。 回答どうもでした。
- aris-wiz
- ベストアンサー率38% (96/252)
>forの無限ループって、顔文字の涙にみえないですか? 言われてみれば、見えなくも無いですが人それぞれでしょう。 他にも探せば出てきそうですね。 >for文の無限ループって、何が悲しかったのでしょうか? うーん、上の質問の答えが「顔文字に見えない人」にとっては なんとも。。。; べつに悲しかったわけではなくて、 構文的にこうなっただけだと思います。 >C 言語の慣習で、暗黙のキャストを拒否するなら >while(true) って書くべきですね。 C言語ではtrueはマクロのなので結局1に展開されると思うのですが、 暗黙のキャスト云々になにか関係ありますか??? 少なくともC言語の環境においてtrueを定義していない処理系を 使っているところも多いと思うので、コードに汎用性を持たせるなら わざわざtrueにする必要は無いような気もしますが。。。
お礼
回答ありがとです。 while(1)も実は気にはなってたのです。 while(0)とか、while(2)とかだったらあかんの?という話ですし・・・。 無限にするなら、while(0)のほうが、私は適してると思います。
- wp_
- ベストアンサー率54% (132/242)
for(;;) { 仕事;; } 嫁 = null;; for(;;) { if(嫁) けこーん; } // C文法はもう覚えてないなぁ^^;
お礼
回答ありがとです。 下のパターンは、俺にも当てはまります。(;;)
- WizTaka
- ベストアンサー率53% (7/13)
> 何が悲しかったか この疑問に答えられる人はとってもすごいと思いますw for 文の条件式は for(A; B; C) の真ん中の B の部分です。 無限ループさせるからと言って for(;;) と書く必要はありません。 もちろん for(i = 0; ; i++) でも無限ループになりますし、for(; true; ) でもなります。 なので for 文の無限ループのときに涙の顔文字になるとは、一概には言えませんね☆ (というか、for(;;) とか for(; true; ) って書いて無限ループにするようなことって、今までの経験上ないし、これからも絶対にないと思う...) ※ちなみに while(1) って書くのは C 言語の慣習で、暗黙のキャストを拒否するなら while(true) って書くべきですね。
お礼
回答ありがとうです。 for(i=0;;i++)のときは、顔文字の(;;)にはなりませんが、 for(;ture;)のときは、泣いてるようにみえます・・・。(;-;)みたいな 感じで。
お礼
回答ありがとうございます。 無限ループの場合、breakとか、脱出条件ないと、バグになってしまいますから、本当は、避けたいとこです・・・。 プログラム上、仕方なしにやる場合は、絶対break必要ですね。 ちなみに、continueは、ループの始まりにいくだけですから、脱出しても、すぐ、ループ入るから、意味ないです。 ちなみに、私の昔のPC(Windows95)は、たしか、無限ループさせて、ミスって、PCの電源をおとしたら、(本体の)内部メモリーがいかれて、再セットアップ不可になって、つぶれました。(;;) ビスタになってから、無限ループ、特に気をつかってます。