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

IAm*_*00B 17 .net c#

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

for (;;)
{
  // Do some stuff.
}
Run Code Online (Sandbox Code Playgroud)

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

Joe*_*orn 49

它有点像"while(true)"吗?

是.它永远循环.


另请注意Andrew Coleson的评论:

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

  • 你知道,我也不明白为什么会有这么多的选票; 我认为有一个"名声效应",当用户拥有非常高的代表时,人们会对其他非常相似的答案进行回答. (11认同)
  • 这是对的,这是第一次.它发生了.我没有获得任何代表 - 今天已经上限. (4认同)
  • 也许,但更可能的是这是一个简单的问题,所以每个人都检查它,这个答案很容易验证,并且已经在列表的顶部.相信我,当我说我写的所有内容都不会像这样投票. (3认同)

Coi*_*oin 20

是.

如果没有提供任何内容:

  • 初始化没有任何作用.
  • 条件总是如此
  • count语句什么都不做

它相当于while(true).

  • 或者条件永远不是假的? (6认同)

Bra*_*lor 17

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


Mic*_*rdt 13

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

  1. 初始化代码
  2. 继续循环的条件
  3. 为每个循环迭代执行的操作

因为for(;;),所有这些都是空的,所以没有做任何事情来初始化循环,没有条件让它保持运行(即它将无限期地运行)并且除了循环的内容之外没有为每次迭代执行任何操作.


ich*_*ban 12

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


dve*_*pey 11

如果我没记错,它的使用超过了"while(true)",它是否更像"for(;;)// ever"


SPW*_*ley 10

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

这是稍微偏好的惯例,可能是因为它更短.完全没有效率差异.


Otá*_*cio 9

永远循环.


Dmi*_*kov 9

看看for循环.

for ( initialization ; condition ; increment  )
Run Code Online (Sandbox Code Playgroud)

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

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

for(;;)
Run Code Online (Sandbox Code Playgroud)


mat*_*t b 8

是的,这是一个无限循环.和做的一样的想法/效果while(true) { ... }


TSt*_*per 8

像说的无限循环

while (0<1)
Run Code Online (Sandbox Code Playgroud)


Pau*_*ier 6

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