System.out.println(1 + 2 + '3'); // 輸出 54
初學者困惑:以為會自動轉字符串拼接成 "33" 或 "123",實際輸出 54。
'3' 表示 char 類型字面量,其值為字符 '3' 的 Unicode/ASCII 碼:51(十進制)。1 + 2 先計算 = 3 (int)。int + char → char 提升為 int (51) 參與加法。3 + 51 = 54 (int),println 輸出數字 54。"3" (String)System.out.println(1 + 2 + "3"); // 輸出 "33"
/* 解析:
1 + 2 = 3 (int)
3 + "3" → 觸發字符串拼接 → "3" + "3" = "33"
*/
| 表達式 | 類型 | 結果 | 說明 |
|---|---|---|---|
'3' | char | 51 | 字符字面量,值為編碼 |
"3" | String | "3" | 字符串字面量 |
1 + 2 + '3' | int | 54 | 純數值運算 |
1 + 2 + "3" | String | "33" | 遇 String 觸發拼接 |
'a' + 1 | int | 98 | 'a'=97 |
System.out.println('3'); // 輸出 3 或 System.out.println((char)51);。'0'=48、'A'=65、'a'=97、' '=32、'\n'=10。理解「字符字面量本質是整數」與「字符串拼接觸發規則」,是 Java 基礎語法必過關卡。