天天看點

運算符詳解

運算符

  • ​​一、算術運算符​​
  • ​​1、定義​​
  • ​​2、算術運算符介紹​​
  • ​​3、取模%的本質​​
  • ​​4.自增++​​
  • ​​二、關系運算符​​
  • ​​1、定義​​
  • ​​2、關系運算符介紹​​
  • ​​3、細節說明​​
  • ​​三、邏輯運算符​​
  • ​​1、定義​​
  • ​​2、邏輯運算符介紹​​
  • ​​3、運算規則​​
  • ​​四、指派運算符​​
  • ​​1、定義​​
  • ​​2、指派運算符介紹​​
  • ​​3、指派運算符特點​​
  • ​​五、三元運算符​​
  • ​​1.基本文法​​
  • ​​2.使用細節​​

一、算術運算符

1、定義

算術運算符是對數值類型的變量進行運算的

2、算術運算符介紹

運算符詳解

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、定義

  1. 關系運算符的結果都是 boolean 型,也就是要麼是true ,要麼是 false
  2. 關系表達式 經常用在 if 結構的條件中或循環結構的條件中

2、關系運算符介紹

運算符詳解

3、細節說明

  1. 關系運算符的結果都是 boolean 型,也就是要麼是 true ,要麼是 false。
  2. 關系運算符組成的表達式,我們稱為關系表達式。 a > b
  3. 比較運算符"==“不能誤寫成”="

三、邏輯運算符

1、定義

用于連接配接多個條件(多個關系表達式) ,最終的結果也是一個 boolean 值。

2、邏輯運算符介紹

  1. 短路與 && , 短路或 || ,取反 !
  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、指派運算符特點

  1. 運算順序從右往左 int num = a + b + c;
  2. 指派運算符的左邊 隻能是變量,右邊 可以是變量、表達式、常量值 int num = 20; int num2= 78 * 34 - 10; int num3 = a;
  3. 複合指派運算符等價于下面的效果 比如: a+=3;等價于 a=a+3; 其他類推
  4. 複合指派運算符會進行類型轉換。 byte b = 2; b+=3; b++;
byte b = 3;
 b += 2;    等價 b = (byte)(b + 2); 
 b++;   b = (byte)(b+1);      

五、三元運算符

1.基本文法

條件表達式 ? 表達式 1: 表達式 2;

運算規則:

  1. 如果條件表達式為true ,運算後的結果是表達式 1;
  2. 如果條件表達式為false ,運算後的結果是表達式 2;

2.使用細節

  1. 表達式 1 和表達式 2 要為可以賦給接收變量的類型(或可以自動轉換)
  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
}
}