3. 六大類運算符

運算符包含6大類:算術運算符、賦值運算符、比較運算符、邏輯運算符、位運算符、三元運算符。下面分別介紹。
在這裏插入圖片描述

1.算術運算符

1.1 + - * /

  • 對於除號“/”,它的整數除和小數除是有區別的:整數之間做除法時,只 保留整數部分而捨棄小數部分.
  • 注意運算時的自動類型提升。
		int i1=12;
        int i2=5;
        int result=i1/i2; //2
        double result1=i1/(i2+0.0);//2.4
        double result2=(double) i1/i2;//2.4
        System.out.println(result);
        System.out.println(result1);//
        System.out.println(result2);//

1.2 %

  • 如果對負數取模,可以把模數負號忽略不記,如:5%-2=1。 但被模數是 負數則不可忽略。此外,取模運算的結果不一定總是整數.
//正數取模爲正
5%2=1;
5%(-2)=1;
//負數取模爲負
-5%2=-1;
-5%(-2)=1;

1.3自增自減運算 ++,- -

  1. ++a和a++的異同
  • ++a是先增1,再賦值;
  • a++是先賦值,再增1;
  1. ++a不會改變a的類型例如:
short a=10;
a++;
++a;//都可以編譯通過,12
int a=10;
int b=++a;//a=11,b=11
//*******
int c=10;
int d=c++;//d=10,c=11;操作順序是c先賦值給d,然後自增1
//*******
int e=10;
e++;
int f=e;//f=11,e=11
//*******
int g=10;
++g;
int h=g;//g=11,h=11
//****************************

  		int a=10;
        int b=(a++)+(++a);//可以拆分爲c=a++,d=++a,b=c+d
        //c=10,d=12,a=12,b=22
        System.out.println("a="+a);//12
        System.out.println("b="+b);//22

2. 賦值運算符

包含 = ,+=,-=,*=,/=,%=

  1. 當“=”兩側數據類型不一致時,可以使用自動類型轉換或使用強制類型轉換原則進行處理。
  2. 支持連續賦值,連等。
int i,j;
i=j=10;
  1. += 等運算符,不會改變數據類型
//*********練習1
short s = 3;
 s = s+2; // 編譯失敗
s += 2;    //編譯成功
//*********練習2
int i=1;
i*=0.1;//不會改變數據類型,int i=1*0.1=0;
//*********練習3
int n=3,m=2;
n*=m++;//拆解爲n=n*m++;
//m先運算m++,符合先賦值,再增1,即n=3*2
 System.out.println("n="+n);//6
 System.out.println("m="+m);//3
 //*********練習4
 //*****************
 int n=10;
 n+=(n++)+(++n);//32
 //拆解n=n+(n++)+(++n);
 //     10+10+12

3. 比較運算符

4. 邏輯運算符

邏輯運算符針對的是,布爾型變量進行運算。
在這裏插入圖片描述
其中需要注意的是:

  • “&”和“&&”的區別:
    單&時,左邊無論真假,右邊都進行運算;
    雙&時,如果左邊爲真,右邊參與運算,如果左邊爲假,那麼右邊不參與運算。
  • “|”和“||”的區別同理,||表示:當左邊爲真,右邊不參與運算。
  • **異或( ^ )**與或( | )的不同之處是:當左右都爲true時,結果爲false。 理解:異或,追求的是“異”!異或,當雙元爲異,輸出true;當雙元爲同,輸出false;

5. 位運算符

在這裏插入圖片描述

6. 三元運算符

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章