“for(;;)”在C#中做了什么?

时间:2009-06-11 17:22:30

标签: c# .net

我在读过的书中偶尔会看到这个。但我没有找到任何解释。

for (;;)
{
  // Do some stuff.
}

有点像“while(true)”吗?基本上是一个无限循环的轮询或什么?基本上你会做什么,直到你故意打破循环?

17 个答案:

答案 0 :(得分:49)

  

有点像“while(true)”吗?

是。它永远循环。


另请注意Andrew Coleson的评论:

  

像C这样的语言没有内置的布尔基元,所以有些人喜欢(;;)而不是(1)

答案 1 :(得分:20)

在没有提供任何内容的情况下:

  • 初始化没有任何作用。
  • 条件永远是真的
  • count语句不执行任何操作

相当于while(true)。

答案 2 :(得分:17)

你是对的。这是无限循环的常见C#习语。

答案 3 :(得分:13)

正确。请注意,for循环的大括号包含三个部分:

  1. 初始化代码
  2. 继续循环的条件
  3. 为每个循环迭代执行的内容
  4. 使用for(;;),所有这些都是空的,所以没有做任何事情来初始化循环,没有条件让它保持运行(即它将无限期地运行)并且除了每次迭代都没有执行任何操作循环的内容。

答案 4 :(得分:12)

是的,这是一个无限循环。

答案 5 :(得分:11)

如果我没记错,它用于“while(true)”,它是否更像“for(;;)// ever”

答案 6 :(得分:10)

是的,这是一个无限循环,就像while(true)一样。

这是稍微偏好的惯例,可能是因为它更短。 根本没有效率差异。

答案 7 :(得分:9)

永远循环。

答案 8 :(得分:9)

看看for循环。

for ( initialization ; condition ; increment  )

1)初始化 - 在此设置计数器变量
2)条件 - 保持循环直到计数器变量满足条件
3)增量 - 增加计数器

如果没有条件,循环将永远持续下去。如果它这样做,则不需要计数器。因此

for(;;)

答案 9 :(得分:8)

是的,这是一个无限循环。与while(true) { ... }

相同的想法/效果

答案 10 :(得分:8)

无限循环 喜欢说

while (0<1)

答案 11 :(得分:6)

准确地说,分号之间没有任何东西的任何for循环将永远循环(直到通过其他方式终止),因为它没有定义的不变量。

答案 12 :(得分:4)

它没有结束条件,所以它会永远循环,直到找到休息时间,正如你已经猜到的那样。

答案 13 :(得分:4)

我可能还会补充说,看起来好像有两个笑脸在向你眨眼

for(;;)

也许这就是为什么有些人喜欢使用它。

答案 14 :(得分:4)

是的,它永远循环。 但你应该使用

的原因
for(;;)

而不是

while(true)

就是那个

while(true)

将为您提供编译器警告“条件表达式常量”,而for循环则不会。至少你会在最高警告级别得到这样的编译器警告。

答案 15 :(得分:2)

是的!

答案 16 :(得分:1)

常用于嵌入式编程。

- 设置中断和定时器。 - 然后永远循环。

当发生将要处理的中断或定时器时。