本單元常犯錯誤總覽
| 錯誤 | 正確 | 影響 |
|---|---|---|
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 |
容易出錯 |