Jav*_*i V 1 c++ for-loop while-loop
大多数情况下,while循环用于检查while循环体中发生的事件.并且主要用于给出"确定的"迭代次数.我们假设我们需要知道我们所处的迭代次数,一般来说:
一般While循环:
bool flag = false;
int it = 0;
while (!flag)
{
//... do something using it
++it;
flag = getFlag();
}
Run Code Online (Sandbox Code Playgroud)
一般For循环,迭代次数是循环的固有:
for(int it = 0; it < N; ++it)
{
//... do something using it
if (getFlag())
break;
}
Run Code Online (Sandbox Code Playgroud)
但是,对于没有设置迭代次数的情况(也就是说,我们循环直到偶数发生)我从未见过如下情况:
for(int it = 0; !getFlag(); ++it)
{
//...do something using it
}
Run Code Online (Sandbox Code Playgroud)
但我总是看到像我写的第一个while循环.有什么真正的区别吗?在while循环中它被认为是更好的风格吗?因为对我来说,for循环更紧凑,易于阅读和遵循.
一般来说,你应该使用你认为最具可读性的那些,但要注意这两种结构之间存在差异,可能会让你措手不及:行为continue.
continue不会it使用while构造增加,但它会使用for构造增加它.
while (!getFlag()) {
// ...
if (something) {
// "it" won't be incremented!
continue;
}
// ...
++it;
}
for(int it = 0; !getFlag(); ++it) {
// ...
if (something) {
// "it" will be incremented!
continue;
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
如果您没有使用,continue那么行为将是相同的,但除非您添加不包含语句的限制,否则您不能使一般语句for (a; b; c) { d; }完全等效.{ a; while (b) { d; c; } }dcontinue
| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |