Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当所有表达式都丢失时,C#for循环做什么。例如(;){}_C#_.net_Syntax_For Loop - Fatal编程技术网

当所有表达式都丢失时,C#for循环做什么。例如(;){}

当所有表达式都丢失时,C#for循环做什么。例如(;){},c#,.net,syntax,for-loop,C#,.net,Syntax,For Loop,我只能假设这是一个无限循环 我可以省略for循环中的三个表达式中的任何一个吗?是否省略了每一个默认值?< P>就像C和C++一样,你可以省略三个或三个中的任何一个。p> 是的,这是一个无限循环 示例: (;;){}(又名螃蟹) while(true){} do{}while(true)是的,这是一个无限循环。您可以省略这三个表达式中的任何一个,但根据我的经验,它通常是第一个或全部3个。这是一个无限循环:)。没有默认值。没有初始化,没有递增,也没有完成测试。这是一个无限循环。实际上,它与此相同:

我只能假设这是一个无限循环


我可以省略for循环中的三个表达式中的任何一个吗?是否省略了每一个默认值?

< P>就像C和C++一样,你可以省略三个或三个中的任何一个。p> 是的,这是一个无限循环

示例:

(;;){}(又名螃蟹)

while(true){}


do{}while(true)
是的,这是一个无限循环。您可以省略这三个表达式中的任何一个,但根据我的经验,它通常是第一个或全部3个。

这是一个无限循环:)。

没有默认值。没有初始化,没有递增,也没有完成测试。

这是一个无限循环。实际上,它与此相同:

while (true)
{
}

这确实是一个无限循环

在引擎盖下,编译器/抖动将对此进行优化,以(有效地)实现一个简单的JMP操作

它实际上也与以下内容相同:

while (true)
{
}

(除此之外,这也是经过优化的,因为while表达式的(true)部分通常需要某种比较,但是在这种情况下,没有什么可比较的。继续循环!)

第一部分和第三部分没有默认值(它们默认为无,这会起作用)。条件表达式的默认值为
true
,这将使(;;)有效地成为一个无限循环。(如果默认值应该是
false
,那么使用这样的构造是没有用的)。

对于(;;){}
是无限循环,您是正确的

若你们想使用它,那个么你们必须在你们的循环体中加入一些条件,这样它才能从循环中退出

for (; ;) 
{
    if (conditionTrue)
        break;
    else
        continue;
} 
说:

for语句的所有表达式都是可选的;例如,以下语句用于编写无限循环:

for (;;) {
   ...
}