我只能假设这是一个无限循环。
我可以在 for 循环中省略三个表达式中的任何一个吗?省略时是否每个都有默认值?
是的,这是一个无限循环。
例子:
for (; ;) { }
(又名:螃蟹)
while (true) { }
do { } while (true)
这确实是一个无限循环。
在引擎盖下,编译器/抖动会将其优化为(有效地)一个简单的 JMP 操作。
它实际上也与以下内容相同:
while (true)
{
}
(除了这也被优化掉了,因为 while 表达式的 (true) 部分通常需要某种比较,但是在这种情况下,没有什么可比较的。继续循环!)
是的,这是一个无限循环。您可以省略这三个表达式中的任何一个,但根据我的经验,它通常是第一个或全部 3 个。
这是一个无限循环。实际上,它与此相同:
while (true)
{
}
for (; ;) { }
是无限循环,你是对的。
如果你想使用它,那么你必须在你的循环体中加入一些条件,以便它可以从循环中退出。
for (; ;)
{
if (conditionTrue)
break;
else
continue;
}
没有默认值。什么都没有初始化,什么都没有增加,也没有完成测试。
第一部分和第三部分没有默认值(它们默认为空,它会起作用)。条件表达式的默认值true
将for(;;)
有效地进行无限循环。(如果默认值应该是false
,那么拥有这样的构造将毫无用处)。
就像在 C 和 C++ 中一样,您可以省略这三个中的任何一个,或三个都省略。
这是一个无限循环:)。