C++中的循环嵌套(附带实例)
在 C++ 中,循环有 for、while 和 do...while 这 3 种方式,这 3 种方式可以相互嵌套。
例如,在 for 循环中嵌套 for 循环:
在 while 循环中嵌套 for 循环:
【实例 1】使用嵌套的 for 循环输出由字符“*”组成的 5 层金字塔形状。第 1 层有一个“*”,第 2 层有两个“*”……第 5 层有 5 个“*”。具体代码如下:
【实例 2】使用嵌套的 for 循环输出乘法口诀表。具体代码如下:
例如,在 for 循环中嵌套 for 循环:
for(...) { for(...) { ... } }
在 while 循环中嵌套 for 循环:
while(...) { for(...) { ... } }
【实例 1】使用嵌套的 for 循环输出由字符“*”组成的 5 层金字塔形状。第 1 层有一个“*”,第 2 层有两个“*”……第 5 层有 5 个“*”。具体代码如下:
#include <iostream> using namespace std; int main() { int i,j,k; for(i = 1;i<= 5;i++) //外层 for 循环,i 控制行数(即层数) { for(j = 1;j<= 5-i;j++) //内层 for 循环,j 控制空格数 cout <<" "; for(k = 1;k<= 2*i-1;k++) //内层 for 循环,k 控制 “*” 的数量 cout << "*"; cout << endl; } }程序运行结果为:
* *** ***** ******* *********程序中,最外层的 for 循环控制输出的行数,内层的第一个 for 循环控制字符“*”前的空格数,第二个 for 循环控制输出字符“*”的个数。内层第一个 for 循环中,随着行数的增加,字符“”前的空格数越来越少。内层第二个 for 循环中,输出和行号有关的奇数个字符“*”。
【实例 2】使用嵌套的 for 循环输出乘法口诀表。具体代码如下:
#include <iostream> #include <iomanip> using namespace std; int main(void) { int i,j; i=1; j=1; for(i=1;i<10;i++) //内层 for 循环,i 控制行数由 1 到 9 变化,同时作为被乘数 { for(j=1;j<i+1;j++) //内层 for 循环,j 控制列数由 1 到 i 变化,同时作为乘数 cout << setw(2) << i << "*" << j << "=" << setw(2) << i*j; //输出乘法口诀 cout << endl; //进行换行 } }程序运行结果为:
1*1= 1 2*1= 2 2*2= 4 3*1= 3 3*2= 6 3*3= 9 4*1= 4 4*2= 8 4*3=12 4*4=16 5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25 6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81程序使用了两层 for 循环,外层 for 循环控制行数,使其由 1 到 9 变化,内层 for 循环控制列数,保证随着行数的增加,列数也在增加,最后形成的第 9 行有 9 列。同时,i 和 j 还要作为乘法口诀表中的被乘数和乘数。