Java编程讲义
上QQ阅读APP看书,第一时间看更新

3.4 循环嵌套

顾名思义,循环嵌套就是在循环中嵌套一层循环,先执行外层循环,内层循环作为外层循环的循环体。循环嵌套可以是while循环语句嵌套do-while循环语句,也可以是for循环语句嵌套while循环语句,还可以是for循环语句嵌套for循环语句,…,即各类循环语句都可以作为外层循环,也可以作为内层循环。程序中最常见的是for循环语句嵌套for循环语句。当程序碰到循环嵌套时,先进行外层循环的循环条件判断,如果成立则开始执行外层循环的循环体,该循环体内包含内层循环,内层循环执行结束且外层循环的循环体也执行完毕时,才可以再次进行外层循环的循环条件判断,决定是否再次进入外层循环的循环体。循环嵌套的执行流程如图3.11所示。

图3.11 循环嵌套处理流程图

从图3.11可以看出,循环嵌套就是把内层循环作为外层循环的循环体在执行操作。只有内层循环的循环条件为false时,内层循环才可以结束,外层循环才算完成了一次循环,开始进入下一次循环。

接下来,利用循环嵌套来实现九九乘法表,如例3-12所示。

【例3-12】 Demo0312.java

程序的运行结果如下:

    1*1=1
    1*2=2  2*2=4
    1*3=3  2*3=6  3*3=9
    1*4=4  2*4=8  3*4=12  4*4=16
    1*5=5  2*5=10  3*5=15  4*5=20  5*5=25
    1*6=6  2*6=12  3*6=18  4*6=24  5*6=30  6*6=36
    1*7=7  2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49
    1*8=8  2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64
    1*9=9  2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81

例3-12中,第5~10行是外层循环,使用i来做外层循环的循环变量,初始值为1。外层循环用来控制九九乘法表总共有几行,因此循环条件为i <= 9,即输出9行。第6~8行是内层循环,使用j来做内层循环的循环变量,初始值为1。内层循环用来控制九九乘法表每行应该输出几列。众所周知,九九乘法表第i行的最后就是i * i = 乘积,所以内层循环每一次的执行次数就是i的值,因此内层循环的循环条件为j <= i,即内层循环次数随着i的值而变化。第7行是内层循环的循环体,输出i * j的值。注意此处print的写法,不带ln意味着输出不换行,后边的\t意味着输出制表符。第9行是用来换行的。当内层循环完成一遍循环后,即九九乘法表一行输出完毕,则换行输出下一行,因此换行之后执行外层循环的循环变量更替,即i++,如果此时i <= 9,则继续输出下一行,否则外层循环结束。

此处是以两层嵌套为例在进行讲解,但实际上,循环嵌套也可以嵌套多层。无论如何嵌套,都可以将内层循环作为外层循环的循环体来看待,只不过这个循环体里包含了重复执行的代码。