回圈是用来进行进行重复性的工作,典型的回圈会进行下列三项基本任务
1.控制变数初始设定 |
2. 回圈结束条件测试 |
3. 调整控制变数的值 |
关键字(keyword) do与while构成C++ 中回圈的一种,常用于后测式的回圈,意思是回圈会先进行第一轮,然后才进行回圈的结束条件测试,形式如下
似while陈述,do-while下方while后的小括号为结束条件测试,小括号后需接分号,另外有关控制变数的初始设定及调整,这都需要放在其它地方。下例计算1到100所有整数的和,示范do-while回圈的简单使用
#include <iostream>
int main() {
int sum = 0;
int i = 1;
do {
sum += i;
i++;
} while (i <= 100);
std::cout << "1 + ... + 100 = " << sum<< std::endl;
return 0;
编译后执行,结果如下
$ g++ u0506_1.cpp
$./a.out 复制代码
1 + ... + 100 = 5050
$
回圈也可以是巢状的,所谓巢状的回圈是指回圈中包含其他的回圈,由于我们利用程式码缩排的方式,使该段程式码凹陷进去,看似巢的样子,故称巢状。
下例程式印出九九乘法表,就是利用两个do-while回圈,一个do-while回圈之中包含另一个do-while回圈
#include <iostream>
int main() {
int i = 1;
int j = 1;
do {
do {
std::cout << i * j << " ";
j++;
} while (j <= 9);
j = 1;
i++;
std::cout << std::endl;
} while (i <= 9);
return 0;
}
编译后执行,结果如下
$ g++ u0506_2.cpp
$./a.out 复制代码
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
$
大部分情况下,do-while与while回圈都可互相替代,do-while陈述是在无论如何都需要先做一次的情况下比较方便。