歡迎來到程式設計的世界!

在本章中,我們將一起探索電腦程式的「基本建構模塊」。無論你是想編寫一個簡單的計算機,還是開發下一個熱門的電子遊戲,你都會用到這些核心概念。你可以把它當作是學習一種新語言的語法——一旦掌握了這些規則,你就可以開始編寫屬於你自己的數位故事了!如果起步時覺得有點難,請別擔心;每個人都是從零開始的,我們會一步步為你拆解。


1. 三大支柱:循序、選擇與重複

世界上所有的程式都是由這三個主要原則構成的。你可以把它們想像成你對機器人發出的「指令」:

循序 (Sequence)

這是最簡單的一個!它意味著電腦會按照順序(從上到下)執行你給予的指令。如果你改變了順序,程式可能會出錯。
例子:泡茶時,你必須把水燒開,才能倒出來!

選擇 (Selection)

這讓程式能夠做出決策。電腦會檢查一個條件(是真還是假?),然後決定走哪條路。我們通常會使用 IF 語句來實現這一點。
類比:如果下雨,那麼就帶傘。否則,就把它留在家裡。

重複 (Iteration)

電腦非常擅長一遍又一遍地做同一件事,而且永遠不會感到厭倦。這就叫做迴圈 (loop)
例子:攪拌雞蛋,直到變得蓬鬆為止。

快速複習:
循序 (Sequence):步驟的順序。
選擇 (Selection):進行選擇。
重複 (Iteration):重複執行任務。


2. 儲存資料:變數與常數

要完成任何有意義的工作,程式需要能夠「記住」資訊。我們為此使用「容器」。

變數 (Variables)

變數是一個具名的記憶體位置,儲存的資料在程式執行過程中可以改變
想像一下:遊戲中的「分數」。它從 0 開始,隨着你遊玩而不斷增加。

常數 (Constants)

常數是一個具名的記憶體位置,儲存的資料在程式開始後無法改變
想像一下:\( \pi \) 的值 (3.14) 或者一場比賽中玩家的最大人數。

為什麼要使用名稱而不是直接用數字?

我們使用有意義的識別名稱(例如用 player_health 而不是只用 h),是因為:
1. 這讓程式碼對人類來說更容易閱讀和理解。
2. 在未來修改程式碼時,可以更輕鬆且減少錯誤。

你知道嗎? 為「稅率」之類的東西使用常數,比到處輸入 0.2 這個數字要安全得多。如果稅率變動了,你只需要在程式碼最上方更改一個地方就可以了!


3. 把資料裝進盒子:賦值 (Assignment)

賦值是將一個數值賦予給變數或常數的過程。在大多數程式語言和虛擬碼 (pseudo-code) 中,我們使用 \( = \) 或 \( \leftarrow \) 符號。
例子:\( Score \leftarrow 10 \) 意味著我們把數字 10 放入名為 Score 的盒子裡。


4. 進入迴圈:重複的類型

AQA 要求你掌握兩種主要的重複程式碼的方法:

確定性重複 (Definite Iteration / 計數控制)

當我們在執行迴圈前,已經明確知道它需要重複多少次時,就會使用這種方式。我們通常會使用 FOR 迴圈。
例子:在操場上跑 10 圈。(你知道跑完 10 圈就會停下來)。

不確定性重複 (Indefinite Iteration / 條件控制)

當我們不知道迴圈會重複多少次時,就會使用這種方式。它會一直執行,直到滿足某個條件為止。
條件在開頭: WHILE 迴圈。它會先檢查規則。如果規則不符合,迴圈可能一次都不會執行!
條件在結尾: REPEAT...UNTILDO...WHILE 迴圈。這些迴圈總是會至少執行一次,因為它們先執行任務,然後才檢查規則。

記憶小撇步:
FOR固定 (fixed) 的(你知道次數)。
WHILE等待 (waiting) 的(等待條件改變)。


5. 巢狀結構:結構中的結構

有時你需要將一個結構放入另一個結構中,這稱為巢狀 (nesting)

巢狀選擇

在 IF 語句中再嵌入一個 IF 語句。
例子:如果是週末……那麼(如果天氣晴朗……就到戶外去)。

巢狀重複

在一個迴圈中再嵌入另一個迴圈。
類比:想像時鐘。時針走動一次,但在那一小時內,分針必須重複走動 60 次!


6. 副程式 (Subroutines: Procedures and Functions)

副程式是你主程式內的一個具名的「迷你程式」。與其將相同的 20 行程式碼寫上五次,不如將其寫一次,命名後,在需要時隨時「呼叫」它。

程序 (Procedures):執行一個任務(例如 print_header)。
函數 (Functions):執行一個運算並將結果傳回 (return) 給你(例如 calculate_tax)。


常見錯誤提示

變數與常數:不要試圖在程式碼中修改常數的值!電腦會報錯。
無窮迴圈:如果你使用不確定性迴圈 (WHILE) 但忘了在迴圈內修改變數,程式將會永遠執行下去並當機。一定要確保「條件」最終能變為假 (false)!
命名不當:避免使用像 variable1thingy 這種名稱。請改用 user_agetotal_price


考試重點總結

1. 能夠在任何程式碼片段中辨識出循序、選擇和重複
2. 理解變數會改變,而常數保持不變。
3. 記住:當你知道重複次數時使用 FOR 迴圈,不知道次數時使用 WHILE 迴圈。
4. 務必為變數使用有意義的名稱,以保持程式碼「整潔」。