# 特殊運算子

# 指定運算子 =

將右邊的值存入左邊

int a = 3,b = 9,c;
c = a+b;// 指定語句
  • 優先級較低,低於邏輯運算子,
  • 和複合運算子同級
  • 結合順序由右至左
int a = 1,b = 5,x ,y,z;
x = y = z = a + b;
//x = ( y = (z = a + b));

# 條件運算子 (三元運算子) ? :

  • 當 <條件式> 為真,則運行 < 表達式 1>
  • 當 <條件式> 為假,則運行 < 表達式 2>
<條件式> ? <表達式1> : <表達式2>
int y =  3 > 2 ?  2 : 1; 
System.out.println(y); // 顯示 2

<表達式 1> 和 < 表達式 2 > 的值應具有相同類型,或能轉換為相同的型態

y = (t >= 0 ? 1 : 0); // 正確
y = (x > 1 ? 1 : "error"); // 錯誤

# 逗號運算子 ,

逗號 , 是一個運算子
多個表達式用逗號隔開,構成逗號表達式

<表達式1>,<表達式2>,...,<表達式n>

從左向右一次計算 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 轉換為 double
n = int(a/b);    // 強制將 a/b 的結果轉換為 int
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay