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)
这两个计算中的输出都是相同的.所以似乎没有区别.我试图寻找其他的例子,但他们看起来很难理解,因为它包含了数学上的东西和其他我尚未学到的东西.我的书也对我的问题给出了一种迷幻的答案.
是否有一个更简单的例子来显示这两个循环之间的区别?
我很好奇
的同时循环是一个进入控制环,即,它首先检查条件中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)
该while循环首先评估number < 10,然后执行体,直到number < 10为false.
该do-while循环,执行体,然后评估number < 10,直到number < 10为false.
例如,这不打印任何内容:
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)