bool 型別僅有 true(1) 與 false(0),常用於條件判斷。
| 運算子 | 意義 | 範例 (Var1=10, Var2=16) |
|---|---|---|
| == | 等於 | false |
| != | 不等於 | true |
| >= | 大於等於 | false |
| <= | 小於等於 | true |
| > | 大於 | false |
| < | 小於 | true |
bool flag = (var1 == var2); // false
運算子兩側運算元型別必須一致。
| 符號 | 名稱 | 真值表 (var1, var2 → var3) |
|---|---|---|
| & | 邏輯 AND | T&T→T, T&F→F, F&T→F, F&F→F |
| | | 邏輯 OR | T|T→T, T|F→T, F|T→T, F|F→F |
| ! | 邏輯 NOT | !T→F, !F→T |
| ^ | 邏輯 XOR | 相同→F, 不同→T |
&&:左運算元為 false 直接回傳 false,不評估右側。||:左運算元為 true 直接回傳 true,不評估右側。效能優於 &/|,且可避免空參考等副作用。
直接操作整數的二進位位元。
int p1 = 10; // 1010
int p2 = 7; // 0111
p1 & p2 // 0010 = 2 (AND)
p1 | p2 // 1111 = 15 (OR)
p1 ^ p2 // 1101 = 13 (XOR)
~p1 // 0101 = 5 (NOT)
<< 左移:5 << 2 → 0101 → 010100 = 20(相當於 ×4)>> 右移:20 >> 2 = 5(相當於 ÷4)| 運算子 | 範例 | 等價於 |
|---|---|---|
| &= | op1 &= op2 | op1 = op1 & op2 |
| |= | op1 |= op2 | op1 = op1 | op2 |
| ^= | op1 ^= op2 | op1 = op1 ^ op2 |
| >>= | op1 >>= op2 | op1 = op1 >> op2 |
| <<= | op1 <<= op2 | op1 = op1 << op2 |
| 優先級 | 運算子 |
|---|---|
| 1 (最高) | ++、-- (前綴)、()、+ - (一元)、!、~ |
| 2 | *、/、% |
| 3 | +、- (二元) |
| 4 | <<、>> |
| 5 | ==、!= |
| 6 | & |
| 7 | ^ |
| 8 | | |
| 9 | && |
| 10 | || |
| 11 | =、+=、-=、*=、/=、%=、<<=、>>=、&=、^=、|= |
| 12 (最低) | ++、-- (後綴) |
同優先級由左至右結合。善用括號 () 明確指定運算順序。
int x = 4 > 5 ? 4 : 5; // 條件 ? 真值 : 假值
// 4>5 為 false,故 x = 5
簡潔替代簡單的 if-else 賦值。