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";