c++中while和do的区别

The difference between while and do while C++?

本文关键字:区别 do while c++      更新时间:2023-10-16

我希望有人能解释一下c++中while和do while的区别

我刚开始学习c++,用这段代码,我似乎得到了相同的输出:

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

和下面的代码:

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

这两种计算的输出都是相同的。所以似乎没有什么区别。我试着找其他的例子,但它们看起来很难理解,因为它包含了数学的东西和其他我还没有学过的东西。我的书也给了我的问题一种迷幻的答案。

是否有一个更简单的例子来说明这两个循环之间的区别?

我很好奇

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 );

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

do while循环是一个退出控制循环,即它在循环体执行完后检查do{...body...}while(condition) 中的条件 ( do while循环的体总是至少执行一次),然后再次循环体,直到发现条件为假。

希望这对你有帮助:)

例如

:在while循环的情况下,在这种情况下不会打印任何内容,因为1不小于1,条件失败并且循环退出

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

然而,在do while的情况下,语句被打印出来,因为它现在不知道任何关于条件的信息,直到它执行了至少一次,然后因为条件失败而停止。

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

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

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

while循环只在满足条件时执行。而do while循环将在不验证条件的情况下第一次执行,直到初始执行之后才执行。