3.1.1 Counter程序简介
Counter程序向前、向后以及每次隔5进行计数,甚至还绘出一个有行有列的网格。这些全都是通过for循环来完成的。程序运行示例如图3-1所示。
|
| 图3-1 for循环完成全部的计数工作,而一对嵌套的for循环显示了网格 |
从Course Technology网站(www.courseptr.com/downloads)或本书合作网站(http://www. tupwk.com.cn/downpage)上可以下载到该程序的代码。程序位于Chapter 3文件夹中,文件名为counter.cpp。
- // Counter
- // Demonstrates for loops
- #include <iostream>
- using namespace std;
- int main()
- {
- cout << "Counting forward:\n";
- for (int i = 0; i < 10; ++i)
- {
- cout << i << " ";
- }
- cout << "\n\nCounting backward:\n";
- for (int i = 9; i >= 0; --i)
- {
- cout << i << " ";
- }
- cout << "\n\nCounting by fives:\n";
- for (int i = 0; i <= 50; i += 5)
- {
- cout << i << " ";
- }
- cout << "\n\nCounting with null statements:\n";
- int count = 0;
- for ( ; count < 10; )
- {
- cout << count << " ";
- ++count;
- }
- cout << "\n\nCounting with nested for loops:\n";
- const int ROWS = 5;
- const int COLUMNS = 3;
- for (int i = 0; i < ROWS; ++i)
- {
- for (int j = 0; j < COLUMNS; ++j)
- {
- cout << i << "," << j << " ";
- }
- cout << endl;
- }
- return 0;
- }
陷阱
如果您使用的是较早的、没有完全实现当前的C++(www.cppentry.com)标准的编译器,在编译这个程序时,可能会遇到像error: 'i' : redefinition; multiple initialization这样的错误。
最好的解决办法是使用一款现代的兼容编译器。幸运的是,从网站http://www. microsoft.com/express/上可以下载到流行(且免费)的Microsoft Visual C++(www.cppentry.com) Express Edition IDE,其中包含一款现代编译器。
如果必须使用早期的编译器,则应当在同一作用域中为所有的for循环声明一次计数器变量。第5章中将介绍作用域的概念。