條件判斷題的邏輯整理筆記|例外規則模板

更新 發佈閱讀 2 分鐘

最近寫JS發現自己會寫出一大坨巢狀 if-else,很醜很難看!但又不太知道該怎麼改善思考邏輯,好像就是順著題目描述寫,沒有先分析整理好,於是請 chatGPT 出了一些題目給我寫,並給了我以下這些建議:


From chatGPT:

這類題目常見於程式練習與實務商業邏輯中,表面看起來規則很多、英文很繞,但本質其實一致:


都是「基本規則+例外+例外的例外」的組合。


關鍵不在於背條件,而在於重新排列判斷順序


一、先不要照題目英文順序寫


英文描述常常是為了人類閱讀,而不是給程式執行。 如果直接照寫,容易產生大量巢狀 if / else,可讀性差,也容易出錯。



二、正確的思考順序(核心心法)

遇到條件題時,請依照以下順序思考:

  1. 哪些情況「一定成立」?
  2. 哪些情況「一定不成立」?
  3. 有沒有「可以推翻前面規則的例外」?
  4. 哪個例外權重最高?

權重越高的條件,越早判斷。


三、通用邏輯模板

判斷流程永遠是:

  1. 先排除「完全不符合資格」的情況
  2. 再處理「最強例外」
  3. 再處理「次要例外」
  4. 剩下的,全部套用基本規則

這個順序比條件本身重要。


四、用白話翻譯程式邏輯(很重要)

好的條件判斷,應該可以直接唸成一句話,例如:

「如果不符合基本條件,就直接結束;


如果有最高等級的例外,就直接成立; 如果命中反例,就否定; 其他情況,成立。」


如果你唸不順,代表程式還可以再整理。


五、為什麼這樣寫比較好?

  1. 減少巢狀 if / else
  2. 每一段邏輯都很明確
  3. 未來新增條件時,不會整段打掉重寫
  4. 自己或別人回頭看時,能一眼看懂規則

這是「工程師可維護性」的基本功。


六、一句你一定要記住的總結

條件題不是在比誰寫得多,而是在比誰先想清楚順序。

當你學會先排「例外的權重」,


再多條件都不會亂。


留言
avatar-img
msnigatsu
0會員
3內容數
🐱
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
建構函數是 JavaScript 中用來創建和初始化物件的一種特殊函數。它像一個「模具」,透過 new 關鍵字生成多個相似的物件實例。
Thumbnail
建構函數是 JavaScript 中用來創建和初始化物件的一種特殊函數。它像一個「模具」,透過 new 關鍵字生成多個相似的物件實例。
Thumbnail
什麼是提升?在 JavaScript 中,提升是指變數和函數宣告會在程式執行前被「提升」到它們所在作用域(scope)的頂部。這是 JavaScript 引擎處理程式碼時的一種行為,讓你在宣告之前就能使用某些變數或函數。
Thumbnail
什麼是提升?在 JavaScript 中,提升是指變數和函數宣告會在程式執行前被「提升」到它們所在作用域(scope)的頂部。這是 JavaScript 引擎處理程式碼時的一種行為,讓你在宣告之前就能使用某些變數或函數。
Thumbnail
什麼是執行環境(Execution Context)? 簡單來說,執行環境是 JavaScript 程式碼執行時所在的「環境」。 它決定了程式碼如何被解析和執行,並管理變數、函數以及作用域(scope)的存取。 每當程式碼執行時,JavaScript 引擎會建立一個執行環境。
Thumbnail
什麼是執行環境(Execution Context)? 簡單來說,執行環境是 JavaScript 程式碼執行時所在的「環境」。 它決定了程式碼如何被解析和執行,並管理變數、函數以及作用域(scope)的存取。 每當程式碼執行時,JavaScript 引擎會建立一個執行環境。
Thumbnail
for...of 需要迭代的是具有迭代器的可迭代物件。一般的物件,除非你為它定義迭代器,否則不能使用 for...of。它主要用來迭代「值」。 for...in 迭代的是物件的可枚舉屬性,在陣列中就會迭代索引。通常用來迭代物件屬性,在陣列中較不適合,也較容易出錯。
Thumbnail
for...of 需要迭代的是具有迭代器的可迭代物件。一般的物件,除非你為它定義迭代器,否則不能使用 for...of。它主要用來迭代「值」。 for...in 迭代的是物件的可枚舉屬性,在陣列中就會迭代索引。通常用來迭代物件屬性,在陣列中較不適合,也較容易出錯。
Thumbnail
這篇文章深入淺出地解釋 JavaScript 中表達式 (expression) 與陳述式 (statement) 的差異,並以 React 中 JSX 的應用為例,說明為何大括號 {} 內只能放入表達式。文章以類比人類語言的句子結構來幫助理解,並提供相關參考資料連結。
Thumbnail
這篇文章深入淺出地解釋 JavaScript 中表達式 (expression) 與陳述式 (statement) 的差異,並以 React 中 JSX 的應用為例,說明為何大括號 {} 內只能放入表達式。文章以類比人類語言的句子結構來幫助理解,並提供相關參考資料連結。
Thumbnail
瀏覽器中三種主要的客戶端儲存方式:Cookie、LocalStorage 和 SessionStorage。
Thumbnail
瀏覽器中三種主要的客戶端儲存方式:Cookie、LocalStorage 和 SessionStorage。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News