Java 控制語句分三大類:順序結構、選擇結構、循環結構。本文聚焦選擇結構中的 if 與 switch。
對條件表達式進行一次測試,若為真則執行語句,否則跳過。
if (條件) {
// 條件為真時執行
}
注意: 若不加大括號 {},if 僅控制緊隨其後的一條語句。建議始終使用大括號養成好習慣。
if (條件) {
// 條件為真
} else {
// 條件為假
}
if (條件1) {
// ...
} else if (條件2) {
// ...
} else {
// 以上皆不滿足
}
適用於「等值判斷」場景,可替代多層 if-else。
switch (表達式) {
case 值1:
// 程式碼
break; // 必加,否則發生 case 穿透
case 值2:
// 程式碼
break;
default:
// 預設情況
}
case 結尾通常加 break,表示該分支結束,跳出 switch。break,程式會繼續執行下一個 case,直到遇到 break 或結束 —— 稱為「case 穿透」,有時可刻意利用(如多值共用邏輯)。JDK 7 之前,switch 表達式僅支援 int(含 byte/short/char 自動轉型)與 enum。JDK 7 起支援 String:
String day = "Mon";
switch (day) {
case "Mon": System.out.println("星期一"); break;
case "Tue": System.out.println("星期二"); break;
// ...
}
自動類型轉換提醒: byte(1B) → short(2B) → int(4B) 可自動提升,故可用於 switch。
if,多值等值判斷用 switch 更清晰。default 分支處理預期外數值。if-else if 鏈,考慮策略模式或查表法重構。switch expression(箭頭語法),更簡潔安全,建議升級後使用。