nun*_*nos 4 c++ syntax for-loop
我一直在查看一些代码,我已经看到了几个例子,其中省略了for循环的第一个元素.
一个例子:
for ( ; hole*2 <= currentSize; hole = child)
Run Code Online (Sandbox Code Playgroud)
这是什么意思?
谢谢.
Pac*_*ace 17
它只是意味着用户选择不将变量设置为它们自己的起始值.
for(int i = 0; i < x; i++)
Run Code Online (Sandbox Code Playgroud)
相当于......
int i = 0;
for( ; i < x; i++)
Run Code Online (Sandbox Code Playgroud)
编辑(回应评论):这些并不完全相同.变量i的范围是不同的.
有时后者用于分解代码.如果在for循环中修改了索引变量,也可以删除第三个语句...
int i = 0;
for(; i < x;)
{
...
i++
...
}
Run Code Online (Sandbox Code Playgroud)
如果你删除第二个语句,那么你就有一个无限循环.
for(;;)
{
runs indefinitely
}
Run Code Online (Sandbox Code Playgroud)
该for构造基本上是( pre-loop initialisation; loop termination test; end of loop iteration),所以这只意味着在这个for循环中没有任何初始化.
你可以for这样重构任何循环:
pre-loop initialisation
while (loop termination test) {
...
end of loop iteration
}
Run Code Online (Sandbox Code Playgroud)