学科分类
目录
Java基础

循环嵌套

嵌套循环是指在一个循环语句的循环体中再定义一个循环语句的语法结构。while、do…while、for循环语句都可以进行循环嵌套,并且它们之间也可以互相嵌套。在实际开发时,我们最常用的是for循环嵌套,其语法格式如下:

for(初始化表达式; 循环条件; 操作表达式) {
    ...
    for(初始化表达式; 循环条件; 操作表达式) {
        执行语句
        ...
    }
    ...
}

在上面的语法结构中,展示了双层for循环嵌套的基本格式。其中外层循环每执行一轮,都要执行完内层循环中的整个for循环,然后执行外层循环第二轮,接着再执行完内层循环中的整个for循环,以此类推,直至外层循环的循环条件不成立,才会跳出整个嵌套for循环。

接下来通过一个打印九九乘法表的案例来演示嵌套for循环的使用,如文件1所示。

文件1 Example14.java

 1    public class Example14 {
 2        public static void main(String[] args) {
 3            // 外层循环,变量i控制输出1~9行
 4            for (int i = 1; i <= 9; i++) {  
 5                // 内层循环,变量j控制输出1~9列
 6                for (int j = 1; j <= i; j++) {  
 7                    //使用字符串拼接的形式,打印每个内层循环的执行语句
 8                    System.out.print(j+"*"+i +"="+ j*i +"\t");  
 9                }
 10                // 使用println()方法控制外层循环进行换行
 11                System.out.println("");    
 12            }
 13        }
 14    }

运行结果如图1所示。

图1 运行结果

文件1中,定义了双层for循环,分别为外层循环和内层循环,外层循环用于控制循环的行数,内层循环用于控制循环的列数,并循环打印出第i行第j列对应的执行语句。输出语句中的“\t”就是前面小节多学一招中介绍的转义字符,表示制表符,这里用来格式化输出语句;另外输出方法print()用于向控制台输出语句,执行完后不会换行,而println()方法同样用于向控制台输出语句,但每次执行完后都会自动换行。

由于上述演示九九乘法表的嵌套循环程序比较复杂,为了使初学者能够清晰的知道程序的整个执行过程,下面分步骤进行详细地讲解,具体如下:

第1步,程序首先进入双层循环的外层循环,在第4行代码将i初始化为1,条件i <= 9为true,首次进入外层循环的循环体,也就是进入内层循环。

第2步,程序进入内层循环,在第6行代码将j初始化为1,由于此时i的值为1,条件j <= i为true,首次进入内层循环的循环体,会使用print()输出语句中的拼接字符串,打印出“1*1=1”。

第3步,程序执行完一次内层循环体后,接着执行第6行代码中内层循环的操作表达式j++,将j的值自增为2。

第4步,程序在内层循环中进行第二轮循环,执行第6行代码中的判断条件j<=i,判断结果为false,本次内层循环结束。接着执行外层循环后续的代码println()方法进行换行。

第5步,程序执行完整个外层循环内部的执行语句后,会执行第4行代码中外层循环的操作表达式i++,将i的值自增为2。

第6步,程序进入外层循环的第二轮循环,执行第4行代码中的判断条件i<=9,判断结果为true,进入外层循环的循环体,继续执行内层循环。

第7步,由于第二轮外层循环时,i的值为2,内层循环会执行两次,即在控制台第2行执行两次print()方法中的输出语句,打印出“12=2 22=4”,在内层循环结束后再次执行println()换行方法进行换行。

第8步,以此类推,直到外层循环的变量i值为10时,外层循环的判断条件i <= 9结果为false,外层循环结束,整个嵌套循环程序也就结束了。

点击此处
隐藏目录