最近寫JS發現自己會寫出一大坨巢狀 if-else,很醜很難看!但又不太知道該怎麼改善思考邏輯,好像就是順著題目描述寫,沒有先分析整理好,於是請 chatGPT 出了一些題目給我寫,並給了我以下這些建議:
From chatGPT:
這類題目常見於程式練習與實務商業邏輯中,表面看起來規則很多、英文很繞,但本質其實一致:
都是「基本規則+例外+例外的例外」的組合。
關鍵不在於背條件,而在於重新排列判斷順序。
一、先不要照題目英文順序寫
英文描述常常是為了人類閱讀,而不是給程式執行。 如果直接照寫,容易產生大量巢狀 if / else,可讀性差,也容易出錯。
二、正確的思考順序(核心心法)
遇到條件題時,請依照以下順序思考:
- 哪些情況「一定成立」?
- 哪些情況「一定不成立」?
- 有沒有「可以推翻前面規則的例外」?
- 哪個例外權重最高?
權重越高的條件,越早判斷。
三、通用邏輯模板
判斷流程永遠是:
- 先排除「完全不符合資格」的情況
- 再處理「最強例外」
- 再處理「次要例外」
- 剩下的,全部套用基本規則
這個順序比條件本身重要。
四、用白話翻譯程式邏輯(很重要)
好的條件判斷,應該可以直接唸成一句話,例如:
「如果不符合基本條件,就直接結束;
如果有最高等級的例外,就直接成立; 如果命中反例,就否定; 其他情況,成立。」
如果你唸不順,代表程式還可以再整理。
五、為什麼這樣寫比較好?
- 減少巢狀 if / else
- 每一段邏輯都很明確
- 未來新增條件時,不會整段打掉重寫
- 自己或別人回頭看時,能一眼看懂規則
這是「工程師可維護性」的基本功。
六、一句你一定要記住的總結
條件題不是在比誰寫得多,而是在比誰先想清楚順序。
當你學會先排「例外的權重」,
再多條件都不會亂。
















