20161120

循环的嵌套:
一个循环体语句中又包含另一个循环语句,称为循环嵌套。
嵌套注意事项:
1.使用循环嵌套时,内层循环和外层循环的循环控制变量不能相同。
2.循环嵌套结构的书写,最好采用“右缩进”格式,以体现循环层次的关系。
3.尽量避免太多和太深的循环嵌套结构
用途:
循环嵌套可以帮助我们解决很多问题,在C语言中经常被用于按行列方式输出数据,例如:

[cpp]  view plain  copy
  1.   
  2. // 九九乘法表  
  3. ///  
  4. #include <stdio.h>  
  5. #define   ROWS   9   
  6. int main()  
  7. {  
  8.     int i, j;  
  9.     for ( i = 1; i <= ROWS; ++i )   // 外循环控制输出行数  
  10.     {  
  11.         for ( j = 1; j <= i; ++j )  // 内循环控制输出列数  
  12.         {  
  13.             printf("%d ", i * j);   // 输出乘积  
  14.         }  
  15.         printf("\n");               // 换行  
  16.     }  
  17.     return 0;  
  18. }  



程序说明:
本例中的外循环共循环 9 次(即一共输出九行),当 i 等于 10 时循环终止。外循环的每轮循环都会执行内循环,在外循环的每轮循环中,内循环的循环次数都不相同。因为外循环的每轮循环都会使 i 增 1,而且 j 的值也会被重新赋值为 1,而内循环的结束条件是 j <= i,且内循环的每轮循环中 j 只增加 1,所以外循环每循环一次,内循环的循环次数就增加一次:在外循环的第一轮循环,内循环的循环次数为 1;在外循环的第二轮循环,内循环的循环次数为 2;在外循环的第三轮循环,内循环的循环次数为 3……以此类推。下面是部分模拟本例的运行过程。
    1. 外循环第一轮循环
        i 的值为 1(以下简写为 i = 1),故而 i <= ROWS 成立,进入循环体:
            1). 内循环的第一轮循环
                j = 1,故而 j <= i 成立,进入循环体:
                    输出 i * j(即 1 * 1)的乘积和一个空格,即 1 。
                ++j --> j = 2,j <= i 不成立,内循环结束。
            输出 
        换行

        ++i --> i = 2,故而 i <= ROWS 成立,开始第二轮循环。

    2. 外循环第二轮循环
            1). 内循环的第一轮循环
                j = 1,j <= i 成立,进入循环体:
                    输出 i * j ( 2 * 1 ) 和一个空格,即 2 。
                ++j --> j = 2,j <= i 仍然成立,开始第二轮循环。
            2). 内循环的第二轮循环
                    输出 i * j ( 2 * 2 ) 和一个空格,即 4 。
                ++j --> j = 3,j <= i 不成立,内循环结束。
            输出 
       换行。
        ++i --> i = 3,i <= ROWS 成立,开始第三轮循环。
至此,输出结果为:
        1 
        2 4 
外循环第三轮循环至第九轮循环从略,请自行模拟一次。

    9. 外循环第九轮循环
        /* ... ... */
        ++i --> i = 10,i <= ROWS 不成立,外循环结束。

最终的输出结果为:
    1 
    2 4 
    3 6 9 
    4 8 12 16
    5 10 15 20 25
    6 12 18 24 30 36 
    7 14 21 28 35 42 49 
    8 16 24 32 40 48 56 64 
    9 18 27 36 45 54 63 72 81

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值