2

可能重复:
“for(;;)”是否比“while (TRUE)”快?如果不是,人们为什么要使用它?

我看到这个

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

经常。但它有什么好处,为什么不选择while(1){}呢?

4

4 回答 4

5

它们产生相同的代码。您可能更喜欢的原因有几个,for (;;)但这只是个人喜好:

  1. 一些编译器会警告您有关始终为真的条件。for(;;)不会有那个问题。

  2. for (;;)字面意思是“永远循环!”,而似乎while (true)仍然有某种条件。

我说选择一个并坚持下去。只要不随意切换就没有关系。

于 2012-11-24T20:27:53.650 回答
4

这是Kernighan 和 Ritchie 在他们的书*中使用的永远循环的形式。绝对没有其他理由更喜欢一种形式而不是另一种形式。

*第 3.5 节关于 While 和 For 循环,示例四。

于 2012-11-24T20:25:33.050 回答
3

两者是等价的,并且很可能会产生相同的机器代码。选择一个而不是另一个是个人喜好的问题。

于 2012-11-24T20:24:50.477 回答
2

这并不重要 - 这只是个人喜好。

for(;;)更喜欢,因为我认为它强调了循环永远的方面。

于 2012-11-24T20:25:45.353 回答