Java if else 條件判斷

if 敘述用來根據條件執行不同的程式碼。

if 敘述

當條件為 true 時執行:

int age = 18;

if (age >= 18) {
    System.out.println("你已成年");
}

if-else 敘述

條件為 false 時執行 else 區塊:

int age = 15;

if (age >= 18) {
    System.out.println("你已成年");
} else {
    System.out.println("你未成年");
}

if-else if-else

多個條件判斷:

int score = 85;

if (score >= 90) {
    System.out.println("優秀");
} else if (score >= 80) {
    System.out.println("良好");
} else if (score >= 70) {
    System.out.println("中等");
} else if (score >= 60) {
    System.out.println("及格");
} else {
    System.out.println("不及格");
}

巢狀 if

if 內部還有 if:

int age = 25;
boolean hasLicense = true;

if (age >= 18) {
    if (hasLicense) {
        System.out.println("可以開車");
    } else {
        System.out.println("需要考駕照");
    }
} else {
    System.out.println("年齡不足");
}

條件運算子(三元運算子)

簡單的 if-else 可以用三元運算子:

int age = 20;

// if-else 寫法
String status;
if (age >= 18) {
    status = "成年";
} else {
    status = "未成年";
}

// 三元運算子寫法
String status2 = (age >= 18) ? "成年" : "未成年";

更多說明請參考 Java 三元運算子

比較運算子

運算子說明範例
==等於a == b
!=不等於a != b
>大於a > b
<小於a < b
>=大於等於a >= b
<=小於等於a <= b

邏輯運算子

運算子說明範例
&&且 (AND)a && b
||或 (OR)a || b
!非 (NOT)!a
int age = 25;
boolean hasTicket = true;

// AND:兩個條件都要成立
if (age >= 18 && hasTicket) {
    System.out.println("可以入場");
}

// OR:任一條件成立即可
if (age < 12 || age > 65) {
    System.out.println("享有優惠票價");
}

// NOT:條件取反
boolean isWeekend = false;
if (!isWeekend) {
    System.out.println("今天是工作日");
}

實際應用

登入驗證

String username = "admin";
String password = "123456";

if (username.equals("admin") && password.equals("123456")) {
    System.out.println("登入成功");
} else {
    System.out.println("帳號或密碼錯誤");
}

範圍檢查

int value = 50;

if (value >= 0 && value <= 100) {
    System.out.println("數值在有效範圍內");
} else {
    System.out.println("數值超出範圍");
}

判斷奇偶數

int number = 7;

if (number % 2 == 0) {
    System.out.println(number + " 是偶數");
} else {
    System.out.println(number + " 是奇數");
}

判斷閏年

int year = 2024;

if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
    System.out.println(year + " 是閏年");
} else {
    System.out.println(year + " 不是閏年");
}

程式碼風格

建議使用大括號

即使只有一行,也建議使用大括號:

// 不建議
if (condition)
    doSomething();

// 建議
if (condition) {
    doSomething();
}

避免過深的巢狀

// 不好的寫法
if (condition1) {
    if (condition2) {
        if (condition3) {
            doSomething();
        }
    }
}

// 較好的寫法:提前返回
if (!condition1) return;
if (!condition2) return;
if (!condition3) return;
doSomething();

短路運算

&&|| 會短路運算:

String s = null;

// 安全的 null 檢查
if (s != null && s.length() > 0) {
    // s 不是 null 才會檢查長度
}

// 使用 || 設定預設值
String name = null;
String displayName = (name != null) ? name : "Guest";