SYSTEM FOUNDATIONS · 03
程式邏輯:程式其實一直在「讀 State → 套規則 → 產生下一個 State」
這一課不追求語法大全,只建立四個幾乎所有語言都有的概念:value/state、condition、repetition、function。之後 JavaScript/C++ 只是用不同語法表達它們。
Learning outcomes
- 能把中文規則翻成 condition。
- 能 trace 一段程式每一步 state。
- 能解釋 loop 是重複執行規則直到 termination condition。
- 能把重複邏輯封裝成 function contract。
1. State
score = 58
passed = false程式的某一刻可以用一組 values 描述目前狀態。執行下一條 instruction 後,state 可能改變。
2. Condition
if score >= 60:
passed = true
else:
passed = falseCondition 本質是產生 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 >= 60argument→ 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
- condition 的輸出通常是什麼型別概念?
- loop 為什麼一定要有終止或有限資料來源?
- function 的 input/output contract 是什麼?
- 手算一個三筆分數的 average state trace。