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

Java 入門教程:運算符與表達式完整指南

     編輯:Java 程式設計入門

運算符分類概覽

運算符指定對操作數執行的運算。按操作數個數分:一元運算符(如 ++、--)、二元運算符(如 +、>)、三元運算符(? :)。按功能分為七大類:

  1. 算術運算符
  2. 關係運算符
  3. 布爾邏輯運算符
  4. 位運算符
  5. 賦值運算符
  6. 條件運算符
  7. 其他(成員存取 .、下標 []、instanceof、new、型別轉換、方法調用 ())

本文重點講解前六類。

§ 3.1 算術運算符

二元算術運算符

運算符用法說明
+op1 + op2加法
-op1 - op2減法
*op1 * op2乘法
/op1 / op2除法
%op1 % op2取模(求餘)

Java 特有擴展: + 運算符支援字串串接("abc" + "de" → "abcde")。與 C/C++ 差異: % 操作數可為浮點數(37.2 % 10 = 7.2)。

一元算術運算符

運算符用法說明
++op正值
--op負值
++++op / op++加 1
----op / op--減 1

前綴與後綴差異

int i = 3;
int j = i++; // j=3, i=4  (先使用再遞增)
int k = ++i; // k=5, i=5  (先遞增再使用)

-- 同理。

完整範例

public class ArithmeticOp {
    public static void main(String[] args) {
        int a = 5 + 4;      // 9
        int b = a * 2;      // 18
        int c = b / 4;      // 4 (整數除法)
        int d = b - c;      // 14
        int e = -d;         // -14
        int f = e % 4;      // -2
        double g = 18.4;
        double h = g % 4;   // 2.4 (浮點取模)
        int i = 3;
        int j = i++;        // i=4, j=3
        int k = ++i;        // i=5, k=5
        // 輸出驗證...
    }
}

§ 3.2 關係運算符

比較兩值,返回 boolean(true/false),非 C/C++ 的 1/0。

運算符用法返回 true 條件
>op1 > op2op1 大於 op2
>=op1 >= op2op1 大於等於 op2
<op1 < op2op1 小於 op2
<=op1 <= op2op1 小於等於 op2
==op1 == op2op1 等於 op2
!=op1 != op2op1 不等於 op2

注意: Java 允許任意類型(含物件)使用 ==/!= 比較引用是否指向同一物件;內容比較請用 equals()。

§ 3.3 布爾邏輯運算符

op1op2op1 && op2op1 || op2!op1
falsefalsefalsefalsetrue
falsetruefalsetruetrue
truefalsefalsetruefalse
truetruetruetruefalse

短路求值:

  • &&:左運算元為 false 時,右運算元不求值。
  • ||:左運算元為 true 時,右運算元不求值。

此特性常用於防護性編程:if (e != 0 && a/e > 5) 避免除零錯誤。

§ 3.4 位運算符

操作二進制位,操作數限整數與字符類型。除 ~ 為一元外皆為二元。

運算符名稱規則
~按位取反0→1, 1→0
&按位與同為 1 則 1,否則 0
|按位或同為 0 則 0,否則 1
^按位異或相異為 1,相同為 0
<<左移低位補 0,高位捨棄
>>有號右移高位補符號位
>>>無號右移高位補 0

補碼表示法

Java 採用補碼:正數最高位 0,負數最高位 1。-42 補碼計算:+42 (00101010) → 取反 (11010101) → +1 → 11010110。補碼優勢:零唯一(00000000)、-1 為全 1(11111111)。

範例:按位取反

int x = 21;  // 00010101
int y = ~x;  // 11101010 = -22 (非 -21!)

範例:按位與

12 & 10  // 1100 & 1010 = 1000 (8)

總結

熟練掌握運算符優先級、短路求值、補碼表示與位運算技巧,是編寫高效、正確 Java 程式的基礎。建議配合實際編碼練習,體會各運算符在流程控制、位元操作、數學運算中的實戰應用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved