2.13 计数器控制循环的要点
计数器控制循环要求:
1.控制变量(或循环计数器)的名称(name)。
2.控制变量的初始值(initial value)。
3.测试控制变量终值(final value)的条件(即是否继续循环)。
4.每次循环时控制变量修改的增量或减量(increment decrement)。
考虑图2.16所示的简单程序,打印1到10的数字。声明:
int counter = 1;
指定控制变量(counter)并声明为整数,在内存中为其保留空间并将初始值设置为1。需要初始化的声明实际上是可执行语句。在C++中,将需要分配内存的声明称为定义(definition)更准确。
// Fig. 2.16: fig02_16.cpp // Counter-controlled repetition #include int main(){ int counter = 1; // initialization while ( counter <= 10 ) { // repetition condition cout << counter << endl; ++counter; // increment } }
输出结果:
2 4 5 0 8 9 10
图 2.16 计数器控制循环
counter 的声明和初始化也可以用下列语句完成:
int counter; counter = 1;
声明不是可执行语句,但赋值是可执行语句。我们用两种方法将变量初始化。
下列语句:
++counter;
在每次循环时将循环计数器的值加1。while结构中的循环条件测试控制变量的值是否小于或等于10(条件为true的终值)。注意,即使控制变量是10时,这个while结构体仍然执行。控制变量超过10时(即counter变成11时),循环终止。
图2.16 的程序也可以更加简化,将 counter 初始化为。并将 while 结构换成:
while (++counter <= lO) cout << counter << endl;
这段代码减少了语句,直接在while条件中先增加计数器的值再测试条件。这段代码还消除了while 结构体的花括号,因为这时while只包含一条语句。
常见编程错误2.12
由于浮点值可能是近似值,用浮点变量控制计数循环可能导致不精确的计数器值,使测试的结果不准确。
编程技巧2.15
用整数值杜制计数循环。
编程技巧2.16
缩排每个控制结构体中的语句。
编程技巧2.17
在每个控制结构前后加上空行,使其在程序中一目了然。
编程技巧2.18
嵌套太多会使程序难以理解。一般来说,缩排不宜超过三层。
编程技巧2.19
在每个控制结构前后加上空行,并缩排每个控制结构体中的语句使程序产生二维效果,大大增加可读性。