2

重複の可能性:
「for(;;)」は「while (TRUE)」より速いですか? そうでない場合、なぜ人々はそれを使用するのですか?

私はこれを見る

for (;;)
{
  // Some code here
} 

かなり頻繁に。しかし、それはどのような利点を提供し、なぜ選択しないのwhile(1){}でしょうか?

4

4 に答える 4

5

それらは同一のコードを生成します。あなたが好むかもしれない理由はいくつかありますがfor (;;)、それはすべて個人的な好みです:

  1. 一部のコンパイラは、常に true である条件について警告します。for(;;)その問題はありません。

  2. for (;;)文字通り「永遠にループしてください!」と読みますが、while (true)それでも何らかの状態があるように見えます。

私は1つを選んでそれに固執すると言います。それらを任意に切り替えない限り、それは問題ではありません。

于 2012-11-24T20:27:53.650 に答える
4

これは、Kernighan と Ritchie が著書で使用した永久ループの形式です*。ある形式を他の形式よりも優先する理由は他にありません。

*セクション 3.5 の While ループと For ループ、例 4 番。

于 2012-11-24T20:25:33.050 に答える
3

この 2 つは同等であり、同じマシン コードになる可能性が高くなります。どちらを選択するかは、個人の好みの問題です。

于 2012-11-24T20:24:50.477 に答える
2

それは本当に重要ではありません - それは個人的な好みです.

ループフォーエバーの側面for(;;)を強調していると思うので、私はもっと好きです。

于 2012-11-24T20:25:45.353 に答える