歡迎來到「邏輯思考」!

你好!歡迎來到電腦科學中最令人興奮的部分之一。到目前為止,你可能已經學習過如何拆解問題或如何隱藏不必要的細節。現在,我們即將進入運算思維的「大腦」:邏輯思考 (Thinking Logically)

邏輯思考的核心在於賦予電腦做出決策的能力。由於電腦本身並不具備真正的「智慧」,我們必須明確地告訴它們「何時」需要做決定,以及「如何」做出決定。如果起初覺得這些概念有些抽象,別擔心——我們每天都在進行邏輯決策,甚至自己都沒有意識到!

在本章中,我們將重點探討三個主要面向:
1. 識別決策點。
2. 釐清這些決策的規則。
3. 觀察這些決策如何改變程式的執行路徑。


1. 識別決策點

在任何流程中,都會有路徑分岔的時刻。在電腦科學中,我們稱之為決策點 (Decision Points)。這正是解決方案中,程式必須在兩個或多個不同行動之間做出選擇的關鍵時刻。

現實生活中的類比:早晨例行公事

想像一下你準備上學的過程:
1. 起床。
2. 往窗外看。
3. 如果正在下雨,就帶把傘。
4. 否則 (Else),就把傘留在家裡。
5. 步行去學校。

第 2 步就是你的決策點。你不可能同時執行第 3 步和第 4 步;你必須根據所看到的狀況做出選擇。

軟體中常見的決策點:

當你需要檢查某些事物時,決策點通常就會出現,例如:
驗證:使用者輸入的密碼正確嗎?
搜尋:這是清單中我要找的項目嗎?
遊戲邏輯:玩家的生命值歸零了嗎?
使用者選擇:使用者點擊了「儲存」還是「取消」?

快速回顧:

決策點是演算法中任何一個「下一步取決於是否滿足特定條件」的節點。


2. 決定邏輯條件

一旦你找出了決策點,就需要定義支配這個選擇的「規則」。我們稱之為邏輯條件 (Logical Condition)

在電腦科學中,這些條件幾乎總是布林值 (Boolean)。這意味著條件的答案必須是真 (True)假 (False)(即「是」或「否」)。電腦最討厭「可能」這種模糊地帶!

如何建立條件

我們通常使用比較運算子 (Comparison Operators) 來建立這些規則:
== (是否相等?)
!= (是否不相等?)
> (是否大於?)
< (是否小於?)

範例:如果你正在建立一個登入系統,邏輯條件就是:「輸入的密碼 (entered_password) 是否等於儲存的密碼 (stored_password)?」

複雜的決策 (AND, OR, NOT)

有時決策取決於多個因素。我們使用邏輯運算子 (Logical Operators) 將它們連接起來:
AND:兩個部分都必須為真(例如:「如果我有錢 AND 商店有開……」
OR:至少有一個部分為真(例如:「如果是星期六 OR 星期日,我就可以睡到自然醒。」
NOT:反轉邏輯(例如:「如果現在 NOT 在下雨……」

記憶小撇步:「守門員」規則

將邏輯條件想像成一位守門員。他們有一份具體的檢查清單。如果你沒有達到清單上的確切標準(條件),你就無法通過那條路徑!

重點總結:

邏輯條件是用來決定採取哪條路徑的準則。它的運算結果永遠必須是真 (True)假 (False)


3. 決策如何影響程式流程

流程 (Flow) 是指指令執行的順序。若沒有邏輯,程式就是線性流程 (Linear Flow)(只會從第 1 行執行到第 2 行,再到第 3 行)。邏輯則引入了分支 (Branching)

分支(選擇結構)

當程式到達決策點時,它會「分支」。這意味著它會根據邏輯條件的結果,遵循一套不同的指令。

流程視覺化:
在流程圖中,我們使用菱形圖案來表示決策。一條路徑進來,但有兩條路徑(真/假)出去。這清楚地展現了「流程」如何改變方向。

對程式的影響:

跳過程式碼:邏輯允許程式跳過不相關的指令(例如,如果你已經登入,程式就會跳過「輸入密碼」的畫面)。
重複(迭代):決策也控制迴圈。程式可能會決定重複某項任務,直到滿足特定條件為止(例如:「一直要求輸入密碼,直到輸入正確為止」)。

常見錯誤,務必避免:

遺漏「假 (False)」路徑:學生經常只規劃條件為真 (True) 時的情況,卻忘記告訴電腦當條件為假 (False) 時該做什麼。請務必問自己:「如果答案是『否』,會發生什麼事?」

快速回顧:

決策將流程從直線變為一系列的分支,使程式能具備動態性並應對不同的情況。


總結檢查清單

在繼續往下學習之前,請確認你已掌握邏輯思考的三個步驟:
識別 (Identify):我能否在問題中找出必須做出選擇的地方?(菱形圖案)。
決定 (Determine):我能否寫出決定結果的具體規則(條件)?(布林值)。
評估流程 (Evaluate Flow):我能否解釋程式路徑如何根據該決策而改變?(分支結構)。

你知道嗎? 歷史上第一個「臭蟲 (Bug)」其實是一隻真的飛蛾卡在電腦裡。即使在那時,它也導致電腦的邏輯崩潰,因為實體零件無法正確完成「真」或「假」的電路運作!

如果起初覺得有點棘手,別擔心!邏輯思考是一項技能,只要你多練習編寫小型程式,或為日常瑣事繪製流程圖,就會變得越來越容易。你一定做得到的!