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

Kah*_*Kah 2 c++ loops while-loop

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

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

int number =0;

while (number<10)
{
cout << number << endl;
number++
}
Run Code Online (Sandbox Code Playgroud)

而这段代码:

int number=0;

do
{
cout << number << endl;
number++
} while (number<10);
Run Code Online (Sandbox Code Playgroud)

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

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

我很好奇

ahj*_*ish 9

同时循环是一个进入控制环,即,它首先检查条件while(condition){ ...body... }然后执行体循环,并保持循环并重复该过程,直到条件为假。

做而循环是一个出口控制回路,即,它检验状态do{...body...}while(condition) 所述循环体已经被执行之后所述主体在while循环将总是被至少执行一次做),然后穿过主体再次循环,直到发现条件为假。

希望这可以帮助 :)

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

int n=1;
while(n<1)
    cout << "This does not get printed" << endl;
Run Code Online (Sandbox Code Playgroud)

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

int n=1;
do
   cout << "This one gets printed" << endl;
while(n<1);
Run Code Online (Sandbox Code Playgroud)


til*_*ert 8

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

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

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

int i = 11;

while( i < 10 )
{
    std::cout << i << std::endl;
    i++;
}
Run Code Online (Sandbox Code Playgroud)

但这打印11:

int j = 11;

do
{
    std::cout << j << std::endl;
    j++;
}
while( j < 10 );
Run Code Online (Sandbox Code Playgroud)