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

你有沒有想過你最愛的應用程式是如何「思考」的?這並非魔法,一切都歸功於程式結構(Constructs)。你可以把程式結構想像成編寫程式碼的積木。就像食譜有步驟、配料和決策(例如「烤 20 分鐘或烤到金黃色為止」),程式也是利用這些邏輯結構來解決問題的。

在本章中,我們將學習如何識別這些積木,並運用它們來編寫出令人驚嘆的程式。如果一開始覺得內容很多,不用擔心;一旦你掌握了當中的規律,編程就會像看地圖一樣自然!

1. 基礎配料:變數與常數

在我們做任何事之前,需要先儲存資料。我們主要使用兩種類型的容器:

變數(Variables):這些是程式執行期間,數值可以改變的容器。想像一下電子遊戲中的「分數」框;它從 0 開始,然後不斷增加。
常數(Constants):這些是數值保持不變的容器。試想 \( \pi \) (Pi) 的數值,或是遊戲中的「重力」設定。我們使用常數是為了讓程式碼更易讀,並防止意外的變動。

初始化與賦值

初始化(Initialisation):這是你第一次為變數賦予數值。就像買了一個新資料夾,並放入第一張紙一樣。
賦值(Assignment):這是你設定(或更改)變數數值的過程。在許多程式語言中,我們使用 \( = \) 符號來進行賦值。例如: \( Score = Score + 10 \)。

重點複習:
變數:可以改變(例如:玩家速度)。
常數:保持不變(例如:最大生命值)。
賦值:將數值存入容器中。

2. 執行順序:指令序列

序列(Sequence)是最基本的程式結構。它意味著電腦會從上到下,一個接一個地執行指令。順序很重要!

比喻:想想你的晨間日常。如果你在穿襪子之前先穿鞋子,那肯定會很麻煩!編程也是一樣的道理。

3. 作出抉擇:選擇結構

有時候,程式需要在不同的路徑之間做出選擇。我們稱之為選擇(Selection)。這通常涉及 IF 語句。

現實生活例子:
如果(IF)正在下雨,那麼(THEN)就帶傘。否則(ELSE),就戴太陽眼鏡。

在編程中,我們使用關係運算子來做出這些決定:
• \( == \)(等於)
• \( != \)(不等於)
• \( > \)(大於)
• \( < \)(小於)

常見錯誤:許多學生在想要表達「是否等於」時,錯誤地使用了單個 \( = \) 符號。請記住: \( = \) 是用來賦值的,而 \( == \) 才是用來比較兩個數值!

4. 重複執行:重複與迭代

電腦非常擅長一遍又一遍地執行枯燥的任務而不會感到疲倦。我們使用迴圈(Loops)來處理這些任務。你需要認識三種主要的類型:

計數控制迴圈(重複)

當你明確知道想要重複執行多少次時使用。
例子:「拍手 5 次。」
在程式碼中,這通常表現為 FOR 迴圈。

條件控制迴圈(重複)

當你想要持續執行,直到某個條件改變為止時使用。你可能不確定需要執行多久。
例子:「持續奔跑直到抵達終點線。」
在程式碼中,這通常表現為 WHILE 迴圈。

數據結構的迭代

這是一種特殊的迴圈,會檢查集合(例如清單或陣列)中的每一個項目
例子:「檢查花名冊上的每一位學生名字。」

你知道嗎?使用迴圈可以讓你的程式碼簡潔許多。與其寫 100 次「打印 'Hello'」,你只需在迴圈中寫一次即可!

5. 與電腦對話:輸入與輸出

如果程式無法與我們溝通,它的用途就不大了!
輸入(Input):使用者提供給程式的資料(例如輸入你的用戶名稱)。
輸出(Output):程式顯示給使用者看的資訊(例如在螢幕上打印「遊戲結束」)。

6. 程式小幫手:副程式與參數

隨著程式變得龐大,結構會變得混亂。我們使用副程式(Subprograms)(也稱為函式或程序)將程式碼歸納為可重覆使用的區塊。

比喻:想像你有一個「小小兵」,他非常清楚如何製作三明治。與其每次你肚子餓時都要解釋每一個步驟(拿麵包、塗牛油、塗果醬),你只需要大喊「製作三明治!」即可。

參數(Parameters):這些是你給予副程式的特定「選項」。對於三明治副程式,參數可能是果醬的口味。「製作三明治(草莓口味)」與「製作三明治(覆盆子口味)」。

7. 編寫優質程式碼:黃金法則

當你編寫程式碼區塊或副程式時,目標應為單一入口與單一出口。這意味著程式碼應該從頂部開始,並在底部結束。盡量避免從迴圈或副程式的中間「跳出」,這會讓你的程式碼更容易進行除錯(修正錯誤)!

考試重點摘要:
1. 序列:按順序執行的指令。
2. 選擇:IF 語句(做出選擇)。
3. 重複:FOR 迴圈(計數控制)與 WHILE 迴圈(條件控制)。
4. 變數會改變;常數則不會。
5. 副程式使程式碼可重複使用且更易於管理。

如果一開始覺得這些概念很困難,別擔心!學習這些結構的最佳方式就是嘗試親手編寫。從小程式開始,很快地,你就能像堆積木一樣,建立出複雜的程式。