将 for 循环转换为具有后增量的 while 循环

时间:2021-01-17 04:42:06

标签: c

将以下 for 循环作为 while 循环执行的等价物是什么?

for (int i=0;i<10;i++)
{
    ...
}

起初我认为以下方法可行:

int n = 0;
while (n++ <= 10) 
{
    ...
}

但似乎后增量发生在进入第一个 while 循环之前,因此我需要设置 n=-1 以进行调整。是否有更接近的方法将 for 循环重写为 while 循环(没有 do)?

3 个答案:

答案 0 :(得分:4)

您必须将增量放在循环体中(在循环体的最后):

int n = 0;
while (n < 10) 
{
    //...
    n++;
}

但请注意:如评论中所述,此类循环中的任何 continue 语句(如果本身未包含在嵌套的内部循环中)都会破坏代码并创建一个潜在的无限循环!

故事的寓意:for 循环合适时使用 for 循环,当 while 循环使用时使用 while 循环是合适的。

答案 1 :(得分:1)

有两种方法可以做到。

  1. while 循环
  2. do-while 循环

尝试以下源代码

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
}