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

Java 基礎入門:條件控制結構(if-else / switch)完整指南

     編輯:Java 綜合教學

Java 基礎入門:條件控制結構完整指南

條件判斷是程序邏輯的基石。本文面向初學者,系統講解 if-else 多重分支與 switch-case 的語法細節、常見陷阱及選型建議,並附帶可直接運行的代碼範例。

一、if-else 多重分支

import java.util.Scanner;

public class IfDemo {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("請輸入假期天數:");
        int holiday = input.nextInt();

        if (holiday > 6) {
            System.out.println("去海南 🌴");
        } else if (holiday > 3) {
            System.out.println("去海邊 🏖️");
        } else {
            System.out.println("在家宅著 🏠");
        }
    }
}

關鍵點:

  • 條件自上而下評估,首個 true 進入對應塊,其餘跳過;
  • 大括號 {} 雖然單語句可省略,但強烈建議保留,防止後期維護引入 Bug;
  • Scanner 需關閉或嘗試資源關閉(JDK 7+ try-with-resources)。

二、switch-case 語句

import java.util.Scanner;

public class SwitchDemo {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("請輸入 1-5 之間的數字:");
        int number = input.nextInt();

        switch (number) {
            case 1: System.out.println("一"); break;
            case 2: System.out.println("二"); break;
            case 3: System.out.println("三"); break;
            case 4: System.out.println("四"); break;
            case 5: System.out.println("五"); break;
            default: System.out.println("輸入錯誤 ❌");
        }
    }
}

三、switch 進階規則(JDK 12+ 可用箭頭語法)

  1. case 常量不可重複,編譯期報錯;
  2. break 可省略:省略後會「貫穿」執行下一個 case,直到遇到 break 或 switch 結束(慎用,易誤讀);
  3. case 順序任意,default 可置頂、置中、置尾,建議放最後;
  4. 支持類型:byte, short, int, char, String (JDK 7+), enum (JDK 5+);不支持 long, float, double, boolean;
  5. JDK 12+ Switch 表達式(推薦):
    String result = switch (number) {
        case 1, 2 -> "低";
        case 3, 4 -> "中";
        case 5 -> "高";
        default -> "無效";
    };

四、if-else vs switch 選型建議

場景推薦理由
區間判斷(如 score >= 90)if-elseswitch 僅支持等值匹配
離散常量匹配(枚舉、菜單選項)switch語法清晰,JVM 可優化為 tableswitch/lookupswitch 指令
複雜布爾表達式組合if-elseswitch 無法直接表達

五、常見新手錯誤避坑

  • ❌ switch(str) { case "a" || "b": ... } → ✅ 分開寫兩個 case;
  • ❌ 忘寫 break 導致邏輯貫穿 → ✅ 習慣寫上或改用 JDK 12+ 箭頭語法;
  • ❌ 用 == 比較 String → ✅ 用 equals() 或 Objects.equals()。
「條件結構是邏輯的骨架,寫清每一個分支,程序才能跑直每一條路。」
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved