首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 流程控制詳解:if、switch 語句完全指南

     編輯:Java 相關知識

Java 控制語句分類

Java 控制語句分三大類:順序結構、選擇結構、循環結構。本文聚焦選擇結構中的 if 與 switch。

if 單選結構

對條件表達式進行一次測試,若為真則執行語句,否則跳過。

if (條件) {
    // 條件為真時執行
}

注意: 若不加大括號 {},if 僅控制緊隨其後的一條語句。建議始終使用大括號養成好習慣。

if-else 雙選結構

if (條件) {
    // 條件為真
} else {
    // 條件為假
}

if-else if-else 多選結構

if (條件1) {
    // ...
} else if (條件2) {
    // ...
} else {
    // 以上皆不滿足
}

switch 多選結構

適用於「等值判斷」場景,可替代多層 if-else。

switch (表達式) {
    case 值1:
        // 程式碼
        break;  // 必加,否則發生 case 穿透
    case 值2:
        // 程式碼
        break;
    default:
        // 預設情況
}

關鍵點:break 與 case 穿透

  • 每個 case 結尾通常加 break,表示該分支結束,跳出 switch。
  • 若省略 break,程式會繼續執行下一個 case,直到遇到 break 或結束 —— 稱為「case 穿透」,有時可刻意利用(如多值共用邏輯)。

JDK 7 新特性:switch 支援 String

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。

最佳實踐建議

  1. 簡單布林條件用 if,多值等值判斷用 switch 更清晰。
  2. 永遠加 default 分支處理預期外數值。
  3. 避免過深的 if-else if 鏈,考慮策略模式或查表法重構。
  4. JDK 12+ 引入 switch expression(箭頭語法),更簡潔安全,建議升級後使用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved