Java 循环嵌套

使用说明

所谓嵌套循环:是指一个循环结构A的循环体是另一个循环结构B。比如,for循环里面还有一个for循环,就是嵌套循环。其中,for ,while ,do-while均可以作为外层循环或内层循环。

  • 外层循环:循环结构A
  •  内层循环:循环结构B

实质上,嵌套循环就是把内层循环当成外层循环的循环体。只有当内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的外层循环。

设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次。

技巧:从二维图形的角度看,外层循环控制行数,内层循环控制列数。

开发经验:实际开发中,我们最多见到的嵌套循环是两层。一般不会出现超过三层的嵌套循环。如果将要出现,一定要停下来重新梳理业务逻辑,重新思考算法的实现,控制在三层以内。否则,可读性会很差。

例如:两个for嵌套循环格式

for(初始化语句①; 循环条件语句②; 迭代语句⑦) {
    for(初始化语句③; 循环条件语句④; 迭代语句⑥) {
          循环体语句⑤;
    }
}

//执行过程:① - ② - ③ - ④ - ⑤ - ⑥ - ④ - ⑤ - ⑥ - ... - ④ - ⑦ - ② - ③ - ④ - ⑤ - ⑥ - ④..

 执行特点:外层循环执行一次,内层循环执行一轮。

应用举例

练习1、打印5行6个*

    public static void printxx() {
        for (int i = 0; i < 5; i++) {//控制行
            for (int j = 0; j < 6; j++) {//控制列
                System.out.print("*");
            }
            System.out.println();
        }
    }

练习2、打印5行直角三角形

    /**
     * 直角三角形
     */
    static void printsjx() {
        for (int i = 1; i <= 5; i++) {
            for (int j = 1; j <= i; j++) {//控制列
                System.out.print("*");
            }
            System.out.println();
        }
    }

案例3:打印5行倒直角三角形

    static void printsjxres() {
        for (int i = 1; i <= 5; i++) {
            for (int j = 1; j <= 6 - i; j++) {//控制列
                System.out.print("*");
            }
            System.out.println();
        }
    }

练习4、打印"菱形"形状的图案

    /**
     * 菱形
     */
    static void pringlx() {
        //上半部分
        for (int i = 1; i <= 5; i++) {
            //空格
            for (int j = 1; j <= 10 - 2 * i; j++) {
                System.out.print(" ");
            }
            //打印
            for (int k = 1; k <= 2 * i - 1; k++) {
                System.out.print("* ");
            }
            System.out.println();
        }
        for (int i = 1; i <= 4; i++) {
            //
            for (int k = 1; k <= 2 * i; k++) {
                System.out.print(" ");
            }
            for (int j = 1; j <= 9 - 2 * i; j++) {
                System.out.print("* ");
            }
            System.out.println();
        }
    }

练习5、九九乘法表

    static void print99() {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(i + "*" + j + "=" + (i * j) + "\t");
            }
            System.out.println();
        }
    }

练习5、打印一天的时间

    static void printTime() {
        for (int hour = 0; hour < 24; hour++) {
            for (int min = 0; min < 60; min++) {
                System.out.println(hour + "时" + min + "分");
            }
        }
    }
posted @ 2023-03-21 21:33  晓枫的春天  阅读(532)  评论(0编辑  收藏  举报