zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    451. Sort Characters By Frequency
    424. Longest Repeating Character Replacement
    68. Text Justification
    44. Wildcard Matching
    160. Intersection of Two Linked Lists
    24. Swap Nodes in Pairs
    93. 递归实现组合型枚举
    98. 分形之城
    97. 约数之和
    96. 奇怪的汉诺塔
  • 原文地址:https://www.cnblogs.com/jlxuqiang/p/3294629.html
Copyright © 2011-2022 走看看