我希望有人能解释一下在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);
这两个计算中的输出都是相同的。所以似乎没有区别。 我试图寻找其他的例子,但他们看起来很难理解,因为它包含了数学上的东西和其他我尚未学到的东西。我的书给我的问题提供了一种迷幻的答案。
是否有更简单的示例来显示这两个循环之间的区别?
我很好奇
答案 0 :(得分:8)
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++;
}
但这会打印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