关于在循环的一个有趣的事情是,如果循环条件为false,while循环可能根本不执行。有时,我们需要一个循环执行至少一次,如显示菜单时。为了促进这一,C++提供了do-while循环:
做
声明;
而(条件);
在一个循环总是执行至少一次在声明。声明之后已经被执行,do-while循环检查条件。如果条件为真,该CPU跳回到的做回路和执行它时再次顶。
这是使用do-while循环显示一个菜单,用户等待用户作出有效的选择的一个例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#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循环时,你故意要循环执行至少一次,因为它使这个假设显-但是,这并不是一个大问题是。