# 特殊運算子
# 指定運算子 =
將右邊的值存入左邊
| int a = 3,b = 9,c; |
| c = a+b; |
- 優先級較低,低於邏輯運算子,
- 和複合運算子同級
- 結合順序由右至左
| int a = 1,b = 5,x ,y,z; |
| x = y = z = a + b; |
| |
# 條件運算子 (三元運算子) ? :
- 當 <條件式> 為真,則運行 < 表達式 1>
- 當 <條件式> 為假,則運行 < 表達式 2>
| <條件式> ? <表達式1> : <表達式2> |
| int y = 3 > 2 ? 2 : 1; |
| System.out.println(y); |
<表達式 1> 和 < 表達式 2 > 的值應具有相同類型,或能轉換為相同的型態
| y = (t >= 0 ? 1 : 0); |
| y = (x > 1 ? 1 : "error"); |
# 逗號運算子 ,
逗號 ,
是一個運算子
多個表達式用逗號隔開,構成逗號表達式
從左向右一次計算 n 個表達式的值
整個表達式的值為 <表達式 n> 的值
| int a = 1,b = 2,c = 3; |
| int y; |
| y = (a = a + 1,b = b + 2,c =c + 3); |
| |
| a = a+1; |
| b = b+2; |
| c = c+3; |
| y = c; |
# 混和運算的類型轉換
程式中明確標記轉換的類型,就是顯式轉換,也就是強制型態轉換
- 優先級:高於乘除,和邏輯 not 同級
- 結合順序:從右至左
| double a = 128,b = 30; |
| int n = 3; |
| a = (double)n/2; |
| n = int(a/b); |