if (booleanExpression)
statement-1;
else
statement-2; // 可省略
if (x = 5) 這類賦值誤寫if (inWord) 優於 if (inWord == true)if (seconds == 59) {
seconds = 0;
minutes++;
} else {
seconds++;
}
警告: 省略大括號會導致 else 無法正確配對,造成編譯錯誤或邏輯錯誤。
if (day == 0) dayName = "Sunday";
else if (day == 1) dayName = "Monday";
else if (day == 2) dayName = "Tuesday";
else if (day == 3) dayName = "Wednesday";
else if (day == 4) dayName = "Thursday";
else if (day == 5) dayName = "Friday";
else if (day == 6) dayName = "Saturday";
else dayName = "unknown";
每個 else if 只有在前面條件皆為 false 時才會評估。
情境:比較兩個 DateTime 物件,回傳 -1/0/+1。
private int dateCompare(DateTime lhs, DateTime rhs) {
int result;
if (lhs.Year < rhs.Year) result = -1;
else if (lhs.Year > rhs.Year) result = +1;
else if (lhs.Month < rhs.Month) result = -1;
else if (lhs.Month > rhs.Month) result = +1;
else if (lhs.Day < rhs.Day) result = -1;
else if (lhs.Day > rhs.Day) result = +1;
else result = 0;
return result;
}
邏輯層層遞進:年→月→日,任一層級差異即可決定結果,否則繼續比較下一層級。
== 為 True,<= >= 為 True< <= 為 True> >= 為 True