基礎程式設計(Java)· CH5

控制敘述(下)

for · do-while · switch · 邏輯運算子 · 導覽地圖

完整內容看 PDF 講義,動手追蹤與試跑看 index。

骨架

本章補齊的控制結構

for
計數器緊湊寫法
do-while
至少做一次
switch
多選比對
&& || !
組合條件

CH4 學 while;本章補其餘重複與選擇,並用邏輯運算子組合多條件。

重複

for:三件事擠一行

for (int i = 1; i <= 10; i++) {
    // 初始化; 條件; 更新
    sum += i;
}

① 初始化做一次 → ② 檢查條件 →(真)迴圈體 → ③ 更新 → 回 ②。三格用分號分隔。

重複

do-while:先做再檢查

int i = 1;
do {
    System.out.print(i + " ");
    i++;
} while (i <= 5);   // 結尾分號別漏

條件在尾巴 → 迴圈體至少執行一次,與 while 的差別就在這。

選擇

switch:一個值比對多選項

switch (level) {
    case 9: System.out.println("A"); break;
    case 8: System.out.println("B"); break;
    default: System.out.println("F");
}

每個 case 末要 break,漏了會貫穿到下個 case;default 處理都不符。

跳轉

break vs continue

break
跳出整個迴圈
continue
跳過本輪剩餘
進下一輪
for (int i=1; i<=10; i++) {
    if (i==5) continue;   // 跳過 5
    if (i==8) break;      // 到 8 結束
    System.out.print(i+" ");
}   // 1 2 3 4 6 7

運算子

邏輯運算子與真值表

aba&&ba||b!a
TTTTF
TFFTF
FTFTT
FFFFT

短路&& 左假就不看右、|| 左真就不看右。優先序 ! > && > ||

應用

短路保護 + 巢狀迴圈

if (s != null && s.length() > 0)   // 左假則右不算,避 NPE
    System.out.println(s);

for (int i=1; i<=9; i++)           // 外
    for (int j=1; j<=9; j++)       // 內:共跑 9×9=81 次
        System.out.printf("%d*%d=%d ", i, j, i*j);

巢狀內層敘述執行「外圈數 × 內圈數」次。

接下來

把迴圈與選擇練到自動

  • PDF 講義 完整內容+for 流程圖+真值表
  • index for 逐步追蹤+試跑+短路示範
  • 本地練習 5 題 for/do-while/switch/break-continue/巢狀
  • 複習測驗 自測到 90%