for循环的嵌套
可以将for循环置于另一个for循环中来实现嵌套,如接下来的代码所示,它计算出网格的元素。外层循环的初始语句如下:
for (int i = 0;i < ROWS; ++i)
该循环仅执行循环体ROWS(5)次。但恰好循环中还有另外一个for循环:for (int j=0; j<COLUMNS; ++j) 结果,对于外层循环的每次迭代,内层循环都完整地执行一遍。在本例中,这意味着对于外层循环ROWS(5)次迭代的每一次,内层循环都执行COLUMNS(3)次,总共15次。具体过程如下:
(1) 外层for循环声明i并将其初始化为0。因为i小于ROWS(5),所以程序进入其循环体。
(2) 内层for循环声明j并将其初始化为0。因为j小于COLUMNS(3),所以程序进入其循环体,将i和j值发送给cout,显示0, 0。
(3) 程序到达内层循环的循环体终点,并把j加至1。因为j仍然小于COLUMNS(3),所以程序再次执行内层循环的循环体,显示0, 1。
(4) 程序到达内层循环的循环体终点,并把j加至2。因为j仍然小于COLUMNS(3),所以程序再次执行内层循环的循环体,显示0, 2。
(5) 程序到达内层循环的循环体终点,并把j加至3。这时,j不再小于COLUMNS(3),内层循环终止。
(6) 程序发送endl给cout,完成了外层循环的第一次迭代,结束第一行。
(7) 程序到达外层循环的循环体终点,并把i加至1。因为i小于ROWS(5),程序再次进入外层循环的循环体。
(8) 程序到达内层循环。内层循环从头开始声明和初始化j为0。程序执行上面描述的步骤(2)~(7),并显示网格的第二行。该过程一直执行,直到显示了所有5行。
再次强调,要记住的重点在于,对于外层循环的每次迭代,内层循环都完整地执行一遍。
|
|