基礎程式設計(Java)· CH4

控制敘述(上)

判斷與 while 迴圈 · 導覽地圖

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

骨架

三種控制結構

順序
由上而下
選擇
if / if-else
重複
while 迴圈

任何程式都是這三種的組合,靠 boolean 條件決定流向。

選擇

if 與 if-else

if (grade >= 60)
    System.out.println("Passed");
else
    System.out.println("Failed");

多條敘述要用 { } 包成區塊;精簡寫法 條件 ? A : B

重複

while:條件為真就反覆

while (條件) {
    迴圈體;      // 一定要讓條件「最終」變假
}

忘了讓條件變假 → 無窮迴圈,程式卡住。

重複型一

計數器控制(知道幾次)

int i = 1;
while (i <= 10) {   // 數到 10
    // 處理
    i++;            // 每輪 +1
}

計數器數到固定次數;邊界 <= 還是 < 要算清楚(差一錯誤)。

重複型二

哨兵控制(不知幾次)

int x = input.nextInt();   // 先讀一筆
while (x != -1) {          // -1 是哨兵
    // 處理
    x = input.nextInt();   // 讀下一筆
}

哨兵值要選不可能出現在正常資料的值。

選型

計數 vs 哨兵

計數器
已知次數
跑固定圈數
哨兵
未知次數
特殊值喊停

算平均時記得 (double) total / count,否則整數除法去小數。

運算子

++ 與 -- :前置 vs 後置

int a = 5, b = ++a;   // a=6, b=6(先變再用)
int c = 5, d = c++;   // c=6, d=5(先用再變)

複合賦值:total += i 等於 total = total + i

接下來

把迴圈練到自動

  • PDF 講義 完整內容+流程圖+追蹤表
  • index 迴圈逐步追蹤+試跑+前後置
  • 本地練習 5 題 while/計數/哨兵/巢狀
  • 複習測驗 自測到 90%