当所有表达式都丢失时,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 (;;) {
...
}