int a = 1;
System.out.println(a = 2); // 輸出: 2
Java 中賦值表達式的值為被賦的值(右側值)。a = 2 先將 2 賦給 a,整個表達式的值為 2,作為 println 參數輸出。
賦值表達式的結果為賦值後變量的值。對於基本類型,即為賦入的值。
// 原代碼
System.out.println(a = 2);
// 編譯器視為等價於
a = 2; // 1. 執行賦值
int temp = a; // 2. 表達式值為變量新值 (2)
System.out.println(temp); // 3. 輸出
| 類別 | 示例 | 返回值 |
|---|---|---|
| 算術表達式 | 3 + 4, i++ | 計算結果 / 運算前值 |
| 關系表達式 | 3 > 7 | boolean (true/false) |
| 邏輯表達式 | (5>4) && true | boolean |
| 位運算表達式 | a = 34 ^ 3 | 位運算結果 |
| 賦值表達式 | a = 2 | 賦入的值 (2) |
| 條件表達式 | b = a>0 ? 1 : -1 | 選中的分支值 |
| 方法調用表達式 | Math.max(1,2) | 方法返回值 |
表達式後加分號成為語句:
int i = 123; // 賦值表達式語句
System.out.println(); // 方法調用表達式語句
i++; // 後綴表達式語句
int a, b, c;
a = b = c = 0; // 右結合:c=0 → b=0 → a=0,值均為 0
String line;
while ((line = reader.readLine()) != null) {
// line 同時完成賦值和非空判斷
}
if ((n = list.size()) > 10) { ... } // 獲取大小並判斷
a = 2 返回 a 的引用/地址(Java 無指針概念)== (比較) 和 = (賦值) 在條件中的使用