为什么选择 (;;){} over while(1).

Why choosing for (;;){} over while(1)?

本文关键字:while over 为什么 选择      更新时间:2023-10-16

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

我看到这个

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

很多时候。但是它有什么好处,为什么不选择while(1){}呢?

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

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

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

我说选择一个并坚持下去。只要你不随意在它们之间切换就没关系。

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

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

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

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

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