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

Java 語言入門教程(八):運算符與流程控制完全指南

     編輯:Java 相關知識

方法體實現業務邏輯的基石是運算符與流程控制。本文系統梳理 Java 四大類運算符優先級、陷阱與最佳實踐,並講解三大流程結構(順序、分支、循環)的語法細節與標籤跳轉技巧。

四大運算符族

1. 算術運算符

  • + - * / % ++ --
  • 陷阱:/整數相除截斷小數,%取餘可判斷奇偶
  • 自增/自減:i++ 返回舊值再加,++i 先加再返回舊值+1;副作用相同,返回值不同
  • + 兼任字符串連接:"Hello" + "World" → "HelloWorld"

2. 位運算符

  • & | ^ ~ << >> >>> 作用於二進制位
  • & 同為1得1,| 有1得1,^ 不同得1,~ 取反
  • 左移 << n ≡ ×2ⁿ(低位補0);右移分有符號 >>(符號位擴展)與無符號 >>>(高位補0)
  • 左移無符號/有符號之分,右移必須區分

3. 比較運算符

  • > < >= <= == != 僅用於基本類型比較
  • == != 可用於引用類型,比較地址值而非內容
  • 字符串比較內容必須用 equals()

4. 邏輯運算符

  • 值域 true/false,1/0 僅為二進制非邏輯值
  • & | ^ !:全評估,雙方均執行
  • && ||:短路,左側決定結果時右側不執行(false && ...、true || ...)
  • 短路可用於防空指針:if (obj != null && obj.method())

流程控制三大結構

分支:if-else / switch-case

if (x == 1) { ... } else { ... }  // 條件必須是 boolean 表達式

switch (y) {  // y 類型:byte/short/int/char/enum (Java 5+)
    case 1: ...; break;
    case 2: ...;  // 缺失 break → 貫穿執行 case 3
    case 3: ...; break;
    default: ...;
}

關鍵點:case 只是入口,break 決定出口。enum 類型增強類型安全。

循環:for / while / do-while

for (int i=0; i<3; i++) { ... }  // 計數循環首選

while (x > 0) { ...; x--; }      // 先判斷後執行,可能零次

do { ...; y--; } while (y > 0);  // 先執行後判斷,至少一次

標籤與跳轉控制

loop1: for (int i=0; i<4; i++) {
    loop2: for (int j=0; j<3; j++) {
        if (i == j) break;           // 跳出 loop2
        if (i < j) continue loop1;   // 直接進入 loop1 下一輪
        System.out.println("i=" + i + " j=" + j);
    }
}

輸出:(1,0) (2,0) (2,1) (3,0) (3,1) (3,2)。
規則:break/continue 后無標籤 → 最近一層;有標籤 → 指定標籤層。

避坑指南

誤區正確做法
字符串用 == 比較用 equals() 或 Objects.equals()
整數除法丟失精度先轉 double 或用 BigDecimal
switch 忘寫 break刻意貫穿加註釋,或改用 if-else
循環條件寫錯導致死循環優先用 for-each 或 Stream 避免手寫索引
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved