C ++时while和do之间的区别?

时间:2014-08-10 21:22:42

标签: c++ loops while-loop

我希望有人能解释一下在C ++中使用a和do之间的区别

我刚开始学习C ++并且使用这段代码我似乎得到了相同的输出:

int number =0;

while (number<10)
{
cout << number << endl;
number++
}

和这段代码:

int number=0;

do
{
cout << number << endl;
number++
} while (number<10);

这两个计算中的输出都是相同的。所以似乎没有区别。 我试图寻找其他的例子,但他们看起来很难理解,因为它包含了数学上的东西和其他我尚未学到的东西。我的书给我的问题提供了一种迷幻的答案。

是否有更简单的示例来显示这两个循环之间的区别?

我很好奇

4 个答案:

答案 0 :(得分:8)

while循环首先评估number < 10,然后执行正文,直到number < 10false

do-while循环,执行正文,然后评估number < 10,直到number < 10false

例如,这不打印任何内容:

int i = 11;

while( i < 10 )
{
    std::cout << i << std::endl;
    i++;
}

但这会打印11

int j = 11;

do
{
    std::cout << j << std::endl;
    j++;
}
while( j < 10 );

答案 1 :(得分:3)

while 循环是条目控制循环,即首先检查while(condition){ ...body... }中的条件然后执行循环的主体并保持循环并重复该过程,直到条件为假。

执行循环是退出控制循环,即检查do{...body...}while(condition) 中的条件循环的主体已被执行 do while循环中的主体将始终至少执行一次 )然后再循环通过主体直到发现这种情况是错误的。

希望这会有所帮助:)

例如: 在while循环的情况下,在这种情况下没有打印,因为1不小于1,条件失败并且循环退出

int n=1;
while(n<1)
    cout << "This does not get printed" << endl;

如果在语句被打印的情况下,因为它现在对条件一无所知,直到它至少执行一次身体然后因为条件失败而停止。

int n=1;
do
   cout << "This one gets printed" << endl;
while(n<1);

答案 2 :(得分:0)

while循环只会执行条件。 do while循环将在不验证条件的情况下第一次执行,而不是在初始执行之后。

答案 3 :(得分:0)

如果您考虑使用不同的起始值,您可以更清楚地看到差异:

int number = 10;

while (number<10)
{
    cout << number << endl;
    number++
}
// no output

在第一个示例中,条件立即失败,因此循环不会执行。但是,因为在第二个示例中之后循环代码之前没有测试条件,所以你将得到一次迭代。

int number = 10;

do
{
    cout << number << endl;
    number++
}
while (number<10);
// output: 10