首页 > 编程笔记 > C++笔记 阅读:19

C++中的循环嵌套(附带实例)

C++ 中,循环有 forwhile 和 do...while 这 3 种方式,这 3 种方式可以相互嵌套。

例如,在 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 还要作为乘法口诀表中的被乘数和乘数。

相关文章