首页 > 解决方案 > 将 for 循环转换为具有后增量的 while 循环

问题描述

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

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

起初我认为以下方法会起作用:

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

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

标签: c

解决方案


您必须将增量放在循环主体内(在其最后):

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

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

故事的寓意:在循环适当时使用for循环,在循环适当时使用循环。forwhilewhile


推荐阅读