運算符
- 一、算術運算符
- 1、定義
- 2、算術運算符介紹
- 3、取模%的本質
- 4.自增++
- 二、關系運算符
- 1、定義
- 2、關系運算符介紹
- 3、細節說明
- 三、邏輯運算符
- 1、定義
- 2、邏輯運算符介紹
- 3、運算規則
- 四、指派運算符
- 1、定義
- 2、指派運算符介紹
- 3、指派運算符特點
- 五、三元運算符
- 1.基本文法
- 2.使用細節
一、算術運算符
1、定義
算術運算符是對數值類型的變量進行運算的
2、算術運算符介紹
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SO4IzM1EWZygTNjZTNxIDOyYzXyEjMxcTM2EzLcVDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
3、取模%的本質
% 是用來取餘數的, 隻能用在整數
取模 a%b的本質是:
a % b = a - a / b * b
10 % 3 => - 10 - (- 10) / 3 * 3 = - 10 + 9 = - 1
10 % -3 = 10 - 10 / (-3) * (-3) = 10 - 9 = 1
10 % -3 = (- 10) - (- 10) / (-3) * (-3) = - 10 + 9 = - 1
4.自增++
前++:先自增後指派
後++:先指派後自增
int j = 8;
int k = ++j; //等價 j=j+1;k=j;
int k = j++; // 等價 k =j;j=j+1;
二、關系運算符
1、定義
- 關系運算符的結果都是 boolean 型,也就是要麼是true ,要麼是 false
- 關系表達式 經常用在 if 結構的條件中或循環結構的條件中
2、關系運算符介紹
3、細節說明
- 關系運算符的結果都是 boolean 型,也就是要麼是 true ,要麼是 false。
- 關系運算符組成的表達式,我們稱為關系表達式。 a > b
- 比較運算符"==“不能誤寫成”="
三、邏輯運算符
1、定義
用于連接配接多個條件(多個關系表達式) ,最終的結果也是一個 boolean 值。
2、邏輯運算符介紹
- 短路與 && , 短路或 || ,取反 !
- 邏輯與 & ,邏輯或 | ,^ 邏輯異或
運算符詳解
3、運算規則
1) a&b : & 叫邏輯與: 規則: 當 a 和 b 同時為 true ,則結果為 true, 否則為 false
2) a&&b : && 叫短路與: 規則: 當 a 和 b 同時為 true ,則結果為 true,否則為 false
3) a|b : | 叫邏輯或,規則: 當 a 和 b ,有一個為 true ,則結果為 true,否則為 false
4) a||b : || 叫短路或,規則: 當 a 和 b ,有一個為 true ,則結果為 true,否則為 false
5) !a : 叫取反,或者非運算。當 a 為 true, 則結果為 false, 當 a 為 false 是,結果為 true
6) a^b: 叫邏輯異或,當 a 和 b 不同時,則結果為 true, 否則為 false
對于&&短路與而言,如果第一個條件為 false ,後面的條件不再判斷
對于&邏輯與而言,如果第一個條件為 false ,後面的條件仍然會判斷
短路或: 如果第一個條件為 true,
則第二個條件不會判斷,最終結果為true ,效率高
邏輯或: 不管第一個條件是否為true ,第二個條件都要判斷,效率低
四、指派運算符
1、定義
指派運算符就是将某個運算後的值,賦給指定的變量。
2、指派運算符介紹
基本指派運算符 = int a = 10;
複合指派運算符
+= ,-= ,*= , /= ,%= 等 ,
a += b; [等價 a = a + b; ]
a -= b; [等價 a = a - b; ]
3、指派運算符特點
- 運算順序從右往左 int num = a + b + c;
- 指派運算符的左邊 隻能是變量,右邊 可以是變量、表達式、常量值 int num = 20; int num2= 78 * 34 - 10; int num3 = a;
- 複合指派運算符等價于下面的效果 比如: a+=3;等價于 a=a+3; 其他類推
- 複合指派運算符會進行類型轉換。 byte b = 2; b+=3; b++;
byte b = 3;
b += 2; 等價 b = (byte)(b + 2);
b++; b = (byte)(b+1);
五、三元運算符
1.基本文法
條件表達式 ? 表達式 1: 表達式 2;
運算規則:
- 如果條件表達式為true ,運算後的結果是表達式 1;
- 如果條件表達式為false ,運算後的結果是表達式 2;
2.使用細節
- 表達式 1 和表達式 2 要為可以賦給接收變量的類型(或可以自動轉換)
- 三元運算符可以轉成 if–else 語句
int res = a > b ? a++ : --b;
if ( a > b) res = a++;
else res = --b;
//三元運算符細節
public class TernaryOperatorDetail {
//編寫一個 main 方法
public static void main(String[] args) {
//表達式 1 和表達式 2 要為可以賦給接收變量的類型
//(或可以自動轉換/或者強制轉換)
int a = 3;
int b = 8;
int c = a > b ? (int)1. 1 : (int)3.4;//可以的
double d = a > b ? a : b + 3;//可以的,滿足 int -> double
}
}