将以下 for
循环作为 while
循环执行的等价物是什么?
for (int i=0;i<10;i++)
{
...
}
起初我认为以下方法可行:
int n = 0;
while (n++ <= 10)
{
...
}
但似乎后增量发生在进入第一个 while 循环之前,因此我需要设置 n=-1
以进行调整。是否有更接近的方法将 for
循环重写为 while
循环(没有 do
)?
答案 0 :(得分:4)
您必须将增量放在循环体中(在循环体的最后):
int n = 0;
while (n < 10)
{
//...
n++;
}
但请注意:如评论中所述,此类循环中的任何 continue
语句(如果本身未包含在嵌套的内部循环中)都会破坏代码并创建一个潜在的无限循环!
故事的寓意:当 for
循环合适时使用 for
循环,当 while
循环使用时使用 while
循环是合适的。
答案 1 :(得分:1)
有两种方法可以做到。
尝试以下源代码
int n=0;
while(n <= 10){
//do your task here
n++;
}
一边做
int n=0;
do{
//do your task here
n++;
}while(n <= 10)
答案 2 :(得分:0)
如果你想要一个后增量 while 循环,那么在 while 循环中使用 (n - 1) 或者你也可以创建一个临时变量。
int n = 0;
while(n++ < 10){
// use n - 1
}
或者,
int n = 0;
while(n++ < 10){
int tn = n - 1; // use tn instead of n - 1
}