2.6.5 for循环结构嵌套
for循环结构同样允许嵌套,本节通过一个for循环嵌套的经典例子帮助读者理解for循环的嵌套。代码2.28可以分为打印表头、打印一条分隔线和打印表体3个部分,前两个部分都是简单的for循环结构,表体为一个9行9列的结构,通过两层for循环嵌套来完成。
代码2.28 for循环结构嵌套ForSample2
<—————————————-文件名:example228.cpp—————————————-> 01 #include<iostream> 02 #include<iomanip> 03 int main() 04 { 05 using namespace std; 06 for(int i=1;i<10;i++) 07 cout<<setw(4)<<i;//打印表头 08 cout<<endl;//换行 09 for(int k=1;k<10;k++) 10 cout<<"——";//打印一条虚线 11 cout<<endl;//换行 12 for(int m=1;m<10;m++) 13 { 14 for(int n=1;n<10;n++) 15 cout<<setw(4)<<m*n;//打印表体 16 cout<<endl; 17 } 18 return 0; 19 }
【代码解析】代码第14行,该for语句就嵌套在第12行的for语句中,变成了多重循环语句。
输出结果如下所示。
1 2 3 4 5 6 7 8 9 —— 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
在程序中,为了使输出的数字按行对齐,我们使用了域宽函数setw,用以设置数值或字符串应采用的字符个数(域宽),并按右对齐方式放置,使用setw函数,必须包括头文件iomanip。关于这方面的内容将在第14章“输入输出和文件”中进行详细介绍。