if (條件) { ... } —— 建議始終加大括號,避免後期維護誤解。if (條件) { ... } else { ... }if (...) { ... } else if (...) { ... } else { ... } —— 末尾 else 可選,但建議保留作為防禦性編程。switch (表達式) {
case 值1:
// 邏輯
break; // 關鍵!防止貫穿
case 值2:
case 值3: // 多標籤共用邏輯
// 邏輯
break;
default: // 防禦性編程:處理預期外值
break;
}
| 特性 | 說明 |
|---|---|
| 判斷類型 | 僅支援 整數類型(byte/short/int/char)、String(JDK 7+)、Enum。不支援 long/float/double/boolean。 |
| 比較方式 | 僅等值比較,不支援範圍判斷(如 >、<),範圍需用 if-else。 |
| 貫穿機制 | 缺少 break 會「貫穿」執行下一個 case,利用此特性可實現多值共用邏輯。 |
| default 位置 | 可放任意位置,但慣例放最後;若非最後需加 break。 |
「先防傻瓜測試,再寫核心邏輯」 —— 先處理 null、邊界、非法參數,再寫正常流程,減少生產事故。
break:跳出當前 switch/循環,繼續執行後續代碼。return:直接結束整個方法,不再執行後續代碼。if-else(支援任意布林表達式)。switch(編譯器優化、可讀性強)。default 分支拋異常或記錄日誌,發現未預期值。switch 表達式(-> 箭頭語法),無需 break,更安全簡潔。