← Foundations Course

SYSTEM FOUNDATIONS · 03

程式邏輯:程式其實一直在「讀 State → 套規則 → 產生下一個 State」

這一課不追求語法大全,只建立四個幾乎所有語言都有的概念:value/state、condition、repetition、function。之後 JavaScript/C++ 只是用不同語法表達它們。

Learning outcomes

1. State

score = 58
passed = false

程式的某一刻可以用一組 values 描述目前狀態。執行下一條 instruction 後,state 可能改變。

2. Condition

if score >= 60:
  passed = true
else:
  passed = false

Condition 本質是產生 true/false 的規則,branch 根據結果選擇不同路徑。

3. Loop

total = 0

for each score:
  total = total + score

每輪讀舊 total,加上新 score,得到下一個 total。Loop 不是魔法,是同一段 transition 被重複執行。

4. Function

function isPassed(score):
  return score >= 60
argument→ parameterfunction body→return value

5. Trace 比「看懂了」可靠

scores = [50, 70, 90]

start total = 0
after 50 → 50
after 70 → 120
after 90 → 210

能逐步預測 state,才代表你真的理解 execution。

Project checkpoint:Request Journey Map v3

When user clicks "Load":
  if data already cached:
    show cached data
  else:
    fetch from server

For each course:
  render one card

現在「網站互動」可以被拆成 condition、loop、function,而不是一團 UI 魔法。

Debug evidence:結果錯不代表語法錯

如果程式能跑但結果錯,先 trace state 與 boundary。像及格線 60 寫成 > 60,59/60/61 三個 case 就能抓到。

Knowledge check

  1. condition 的輸出通常是什麼型別概念?
  2. loop 為什麼一定要有終止或有限資料來源?
  3. function 的 input/output contract 是什麼?
  4. 手算一個三筆分數的 average state trace。