C#for循环语法

Eri*_*ric 5 c#

我正在研究一些C#代码,它具有我以前从未见过的循环语法:

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

没有a init; condition;或incrementdo 的for循环是什么?顺便说一下,在互联网上找到有意义的搜索结果真的很难"for (;;) c#"在我试过的任何搜索引擎上.

-Eric

Sym*_*mon 11

那是一个infinite loop.就像你说的那样,它会一直运行,直到它的一部分中断(抛出异常或以其他方式存在循环)或者机器耗尽资源来支持循环.

for (;;)
{
   //do stuff
} 
Run Code Online (Sandbox Code Playgroud)

与以下相同:

do
{
   //do stuff
}while (true)
Run Code Online (Sandbox Code Playgroud)
while(true)
{
   //do stuff
}
Run Code Online (Sandbox Code Playgroud)

  • 没有变量可以设置为"null".请参阅[规范](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/statements#the-for-statement):第1部分和第3部分("for_initializer"和"for_iterator")是空的陈述,什么都不做.第2部分("for_condition")是一种特殊情况,其中缺少语句被指定为被视为条件评估为"true". (3认同)

Ken*_* K. 8

for因此循环的语法是:

for (condition; test; action)
Run Code Online (Sandbox Code Playgroud)

可以省略这些项目中的任何一个(根据语言规范).所以你得到的是无限循环.类似的方法:

while (true) { // do some stuff }
Run Code Online (Sandbox Code Playgroud)

  • 作为参考,[for`声明中的C#草案规范](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/statements#the-for-statement) .请注意"如果for_condition**不存在**或者评估结果为true,则控制转移到嵌入语句." (强调我的). (3认同)

Der*_*ğlu 7

for (;;)

简答:这是一个无限循环,相当于while(true)

答案很长: 声明的for (initializer; condition; iterator) 结构for

  • 初始化块:不初始化变量.
  • 条件块:没有条件(表示无限执行)=> true
  • 迭代器块:对任何变量都没有操作(没有迭代器)

for(;;)来自官方文档的示例