为什么选择(;;){}而不是(1)?

时间:2012-11-24 20:23:36

标签: c++ loops for-loop while-loop

  

可能重复:
  Is “for(;;)” faster than “while (TRUE)”? If not, why do people use it?

我看到了这个

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

经常。但它提供了哪些好处以及为什么不选择while(1){}

4 个答案:

答案 0 :(得分:5)

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

  1. 有些编译器会警告您一直都是正确的条件。 for(;;)不会有这个问题。

  2. for (;;)字面意思是“Just loop forever!”,而while (true)仍然出现以产生某种条件。

  3. 我说选一个并坚持下去。只要你不随意切换它们就无所谓了。

答案 1 :(得分:4)

这是 forever 循环的形式Kernighan and Ritchie used in their book * 。绝对没有其他理由喜欢一种形式而不是另一种形式。

* 关于While和For循环的第3.5节,第四个例子。

答案 2 :(得分:3)

这两者是等效的,很可能导致相同的机器代码。选择一个是另一个是个人偏好。

答案 3 :(得分:2)

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

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