关于在循环的一个有趣的事情是,如果循环条件为false,while循环可能根本不执行。有时,我们需要一个循环执行至少一次,如显示菜单时。为了促进这一,C++提供了do-while循环:|
do
statement;
while (condition);
在一个循环总是执行至少一次在声明。声明之后已经被执行,do-while循环检查条件。如果条件为真,该CPU跳回到的做回路和执行它时再次顶。
这是使用do-while循环显示一个菜单,用户等待用户作出有效的选择的一个例子:
#include <iostream>
int main()
{
using namespace std;
// nSelection must be declared outside do/while loop
int nSelection;
do
{
cout << "Please make a selection: " << endl;
cout << "1) Addition" << endl;
cout << "2) Subtraction" << endl;
cout << "3) Multiplication" << endl;
cout << "4) Division" << endl;
cin >> nSelection;
} while (nSelection != 1 && nSelection != 2 &&
nSelection != 3 && nSelection != 4);
// do something with nSelection here
// such as a switch statement
return 0;
}
关于上面的例子一个有趣的事情是,nselection变量必须是做块外声明。想一想吧,看看你能不能找出原因。
如果nselection变量是在做块宣布,它将被销毁时做块终止,这发生在当条件执行。但我们需要使用的变量的条件-因此,这nselection变量必须做块外声明。
一般来说是好的形式使用do-while循环而不是一个while循环时,你故意要循环执行至少一次,因为它使这个假设显-但是,这并不是一个大问题是。