語法書 / AA 競程語法書 上冊 / 第三單元 / 本單元常犯錯誤總覽

本單元常犯錯誤總覽

錯誤 正確 影響
if (x = 5) if (x == 5) 邏輯完全錯誤
if (x > 0); { ... } 多打分號 if (x > 0) { ... } 大括號區塊永遠執行
if (1 <= x <= 10) if (1 <= x && x <= 10) 邏輯永遠為 true
寫成 =>=< 或數學符號 >=<=!= 編譯錯誤
單個 &| 當邏輯運算子 &&|| 意思不同(位元運算),錯得隱蔽
x >= 1 && <= 10 少寫一邊 x >= 1 && x <= 10 編譯錯誤
x % 2 == 1 判斷奇數 x % 2 != 0 負的奇數餘 -1,全被漏掉
cout << x <= y 沒加括號 cout << (x <= y) << 先算,編譯錯誤
if (x > 5) y++; else ... 加大括號:if (x > 5) { y++; } else ... dangling else,邏輯錯誤
int x = 10; { int x = 20; } 改變數名 遮蔽造成混淆
a || b && c 沒理清優先順序 加括號:(a || b) && c 容易出錯