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

Java 基礎培訓(五):if 條件判斷與比較操作詳解

     編輯:Java 相關知識

if 語句是程序流程控制的基石。正確理解基本類型與引用類型的比較差異,掌握 equals、instanceof 等關鍵操作,是寫出無 Bug 代碼的前提。

基本類型比較

int number = 1;
if (number == 1) { ... }           // 相等
if (number < 2) { ... }            // 小於
if (number >= 0) { ... }           // 大於等於
if (number != 0) { ... }           // 不等於

// 包裝類型 JDK5+ 支持 == 自動拆箱
Integer number2 = new Integer(1);
if (number2 == 1) { ... }          // 自動拆箱比較值
if (number2.equals(1)) { ... }     // 通用安全方式

引用類型比較核心原則

類型== 比較equals 比較推薦方式
String比較引用地址比較字符內容永遠用 equals
包裝類比較引用(-128~127 緩存除外)比較值用 equals
自定義對象比較引用地址取決於重寫邏輯重寫 equals 後用 equals

正確的字符串比較模式

String str = new String("java2000");

// ❌ 錯誤:比較引用
if (str == "java2000") { ... }

// ✅ 正確:內容比較
if (str.equals("java2000")) { ... }

// ✅ 更安全:常量在前防 NPE
if ("java2000".equals(str)) { ... }

// ✅ Java 7+ 支持 switch
switch (str) {
    case "java2000": ... break;
}

instanceof 類型檢查


if (str instanceof String) { ... }        // true
Object obj = str;
if (!(obj instanceof Integer)) { ... }    // true

// 模式匹配
if (obj instanceof String s) {
    System.out.println(s.length()); // 直接使用 s
}

多條件分支最佳寫法


// ✅ 推薦:else-if 鏈
if (condition1) {
    // ...
} else if (condition2) {
    // ...
} else {
    // 默認處理
}

// ❌ 避免:多個獨立 if(邏輯互斥時)
if (condition1) { ... }
if (condition2) { ... } // 仍會判斷

空指針防護鐵律

  • 常量在前:"const".equals(var) 而非 var.equals("const")
  • Objects 工具類:Objects.equals(a, b) 內部處理 null
  • Java 8+ Optional:Optional.ofNullable(obj).ifPresent(...)
  • 斷言/驗證框架:@NotNull 註解 + 運行時檢查
輸入異常示例
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved