4.4 巢狀迴圈
多層迴圈
如同 if ... else 可以有多層結構,迴圈也可以有多層結構。多層迴圈是什麼樣子呢?我們以時鐘的時針、分針為例來說明。
分針和時針各是一個迴圈,分針 0~59,時針 0~11。
分針會由 0 分 轉到 59 分,接下來轉到 60 分時,時針會前進一格,分針則歸零重新開始新的一圈。

for(int hour=0; hour<12; hour++) // 外圈是時針
{
for(int minute=0; minute<60; minute++) // 內圈是分針
{
cout << hour << ":" << minute << endl;
}
}
- 一開始外圈的 hour 是 0
- 進入迴圈的主體 (3~6行)
- 內圈的 minute 一開始是 0
- 進入迴圈的主體 (第5行)
- minute 一邊遞增,一邊把第 5 行執行 60 次
- 內圈執行完畢
- hour 遞增 1
- 再次進入迴圈的主體 (3~6行)
- 內圈的 minute 一開始是 0
- 進入迴圈的主體 (第5行)
- minute 一邊遞增,一邊把第 5 行執行 60 次
- 內圈執行完畢
- ......
程式執行後的輸出如下:
0:0
0:1
0:2
0:3
.
.
.
0:59
1:0
1:1
1:2
.
.
.
11:57
11:58
11:59
練習:3x4 星號矩陣
******
******
******
---
在這個練習中,我們要輸出如上的一個 4x3 星號矩陣