• C语言循环的嵌套


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

    ////////////////
    // 九九乘法表
    ///////////////
    #include <stdio.h>
    #define   ROWS   9 
    int main()
    {
        int i, j;
        for ( i = 1; i <= ROWS; ++i )   // 外循环控制输出行数
        {
            for ( j = 1; j <= i; ++j )  // 内循环控制输出列数
            {
                printf("%d ", i * j);   // 输出乘积
            }
            printf("\n");               // 换行
        }
        return 0;
    }



    程序说明:
    本例中的外循环共循环 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

  • 相关阅读:
    SpringBoot集成Mybatis
    springboot通过slf4j配置日志
    SpringBoot导入jsp依赖始终报错
    shiro小记
    阿里开发手册华山版——(编程规约篇)记录目前自己不合理的地方
    [网络流24题] 2. 太空飞行计划问题 解题报告
    LOJ 6089 小 Y 的背包计数问题 解题报告 (动态规划)
    UVA 10599 Blocks 解题报告 (动态规划)
    Comet OJ#12E Ternary String Counting 解题报告
    [WC2016]挑战NPC 解题报告
  • 原文地址:https://www.cnblogs.com/jlxuqiang/p/3294629.html
Copyright © 2020-2023  润新知