• ベストアンサー

ループについて

 アンケート的な質問ですが、forの無限ループと、whileの無限ループが、C言語にはありますよね?  whileの場合は、while(1)と書きますし、問題ないですが、 forの場合は、for(;;)とかきますよね。  forの無限ループって、顔文字の涙にみえないですか? for文の無限ループって、何が悲しかったのでしょうか? 答えられる方、こたえてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • titokani
  • ベストアンサー率19% (341/1726)
回答No.4

>forの無限ループって、顔文字の涙にみえないですか? 見えますね >for文の無限ループって、何が悲しかったのでしょうか? 本当は無限ループになんかしないで、すっきりとループ脱出条件を 書きたかったのに書けなかったのが悲しいんでしょう。

xyzxyz11
質問者

お礼

 回答ありがとうございます。 無限ループの場合、breakとか、脱出条件ないと、バグになってしまいますから、本当は、避けたいとこです・・・。 プログラム上、仕方なしにやる場合は、絶対break必要ですね。 ちなみに、continueは、ループの始まりにいくだけですから、脱出しても、すぐ、ループ入るから、意味ないです。 ちなみに、私の昔のPC(Windows95)は、たしか、無限ループさせて、ミスって、PCの電源をおとしたら、(本体の)内部メモリーがいかれて、再セットアップ不可になって、つぶれました。(;;) ビスタになってから、無限ループ、特に気をつかってます。

その他の回答 (4)

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.5

>for文の無限ループって、何が悲しかったのでしょうか? そりあ、あーた、無限ループすることが悲しいんですよ。サラリーマンにとってみれば、無限ループって、一生休みなしに働くことですから。

xyzxyz11
質問者

お礼

 全体的なまとめとして、たしかに、 for(; ;)については、涙に見えるか、どうかは、人それぞれですね・・・。 プログラミングの休憩として、こういう構文探してみるのも、たまには、おもしろいかも(^^) 今のところ、forの無限ループしか、思い当たりませんが、みつけたら、また 書きます。 回答どうもでした。

  • aris-wiz
  • ベストアンサー率38% (96/252)
回答No.3

>forの無限ループって、顔文字の涙にみえないですか? 言われてみれば、見えなくも無いですが人それぞれでしょう。 他にも探せば出てきそうですね。 >for文の無限ループって、何が悲しかったのでしょうか? うーん、上の質問の答えが「顔文字に見えない人」にとっては なんとも。。。; べつに悲しかったわけではなくて、 構文的にこうなっただけだと思います。 >C 言語の慣習で、暗黙のキャストを拒否するなら >while(true) って書くべきですね。 C言語ではtrueはマクロのなので結局1に展開されると思うのですが、 暗黙のキャスト云々になにか関係ありますか??? 少なくともC言語の環境においてtrueを定義していない処理系を 使っているところも多いと思うので、コードに汎用性を持たせるなら わざわざtrueにする必要は無いような気もしますが。。。

xyzxyz11
質問者

お礼

回答ありがとです。 while(1)も実は気にはなってたのです。 while(0)とか、while(2)とかだったらあかんの?という話ですし・・・。 無限にするなら、while(0)のほうが、私は適してると思います。

  • wp_
  • ベストアンサー率54% (132/242)
回答No.2

for(;;) {  仕事;; } 嫁 = null;; for(;;) {  if(嫁) けこーん; } // C文法はもう覚えてないなぁ^^;

xyzxyz11
質問者

お礼

回答ありがとです。 下のパターンは、俺にも当てはまります。(;;)

  • WizTaka
  • ベストアンサー率53% (7/13)
回答No.1

> 何が悲しかったか この疑問に答えられる人はとってもすごいと思いますw for 文の条件式は for(A; B; C) の真ん中の B の部分です。 無限ループさせるからと言って for(;;) と書く必要はありません。 もちろん for(i = 0; ; i++) でも無限ループになりますし、for(; true; ) でもなります。 なので for 文の無限ループのときに涙の顔文字になるとは、一概には言えませんね☆ (というか、for(;;) とか for(; true; ) って書いて無限ループにするようなことって、今までの経験上ないし、これからも絶対にないと思う...) ※ちなみに while(1) って書くのは C 言語の慣習で、暗黙のキャストを拒否するなら while(true) って書くべきですね。

xyzxyz11
質問者

お礼

 回答ありがとうです。 for(i=0;;i++)のときは、顔文字の(;;)にはなりませんが、 for(;ture;)のときは、泣いてるようにみえます・・・。(;-;)みたいな 感じで。

関連するQ&A

専門家に質問してみよう