Loops — for / while / nested

迴圈

程式語言一 · 導覽投影片

→ / space 前進  回 Esc 總覽 F 全螢幕
導覽:建框架。完整內容在 PDF,可跑範例在 index。

01for 的三段

for (初始化; 條件; 更新) { 主體 }
for (int i = 0; i < n; i++) { ... }   // i=0..n-1,共 n 次

順序:初始化(一次)→ [條件→主體→更新] → … → 條件假 → 離開。慣例從 0 開始、用 i < n。`i<5` 跑 5 次、離開時 i=5。

02while / do-while · 累加器

while 先檢查、可能不做;do-while 先做一次再檢查。

int sum = 0;                  // 累加器初值 0(累乘用 1)
for (int i = 1; i <= 100; i++) sum += i;   // → 5050

累加器 pattern:外初始化、內累加、外使用。

03break / continue

for (int i = 1; i <= 10; i++) {
    if (i == 5) break;        // 跳出整個迴圈
    if (i % 2 == 0) continue; // 跳過本圈,進下一圈
    printf("%d ", i);         // 印 1 3
}

04巢狀迴圈

外層跑 1 次、內層跑完整一輪,總次數 = 外 × 內(像時鐘的時針與分針)。

for (int i = 1; i <= 9; i++) {           // 九九乘法表
    for (int j = 1; j <= 9; j++)
        printf("%d*%d=%-4d", i, j, i*j); // %-4d 靠左對齊
    printf("\n");
}

05圖形:內層條件控制每行

for (int i = 1; i <= n; i++) {     // 外層:行數
    for (int j = 1; j <= i; j++)   // 內層:第 i 行印 i 個
        printf("*");
    printf("\n");
}

倒三角把外層改倒數;等腰三角先印空格再印星號。對齊:%5d 靠右、%-5d 靠左、%05d 補零。

06三大陷阱

無窮迴圈:忘了 i++ 或方向錯。
off-by-one:想印 1~10 卻寫 i < 10(只到 9),用 <=
for 後加分號for(...); 變成空迴圈!
next

接著動手

PDFindex 跑 sum/巢狀/三角形 → 本地練習 5 題(總和/階乘/九九/三角/FizzBuzz)→ Quizlet + 測驗卷 ≥ 90%。