是什么意思" for(;;)"

时间:2016-02-18 12:37:02

标签: c for-loop syntax

莫因, 我刚刚在一些源代码中找到了for循环。

for (;;) {
    // some work
    if (condition) {
       break;
    }
}

for (;;)如何运作?

5 个答案:

答案 0 :(得分:8)

这个for(;;)是一个无限循环。

根据C11,章节§6.8.5.3, for陈述

  

声明
  for子句-1 ; 表达式-2 ; 表达式-3 声明
  表现如下:表达式表达式-2 是控制表达式   在每次执行循环体之前进行评估。[...]

和(强调我的

  

可以省略子句-1 表达式-3 省略的表达式-2 替换为a   非零常数。

另外,使用控制表达式

  

迭代语句会导致重复执行一个称为循环体的语句   直到控制表达式比较等于0. [...]

因此,如果删除所有三个,控制表达式将被视为非零,永远为真,因此基本上使其成为无限循环。

答案 1 :(得分:3)

这是一个无限循环,比如

while (1)

这主要用于befroe,因为有些编译器在使用while(1)检测到无限循环时会抱怨。

for的三个部分是optionnal,所以如果缺少初始化部分,那么就没有初始化,如果缺少测试部分,它会假设“是”等等。

答案 2 :(得分:3)

for (;;) {
    // some work
    if (condition) {
       break;
    }
}

相当于

do
{
  //some work
}while(!condition);

答案 3 :(得分:1)

将此视为"永远"。 它会重复该块直到满足条件,并执行break语句。

答案 4 :(得分:1)

这是一个无限循环。 这意味着循环将继续执行,直到您使用break或exit函数。