天天看點

JAVA中的運算符(算術運算符, 指派運算符 , 邏輯運算符 ,三目運算符 )運算符

運算符

首先,運算符是用來幹什麼的?

答:提供運算符是用來操縱變量的
           

使用頻率最高的幾種運算符:

  • 算術運算符
  • 指派運算符
  • 比較運算符
  • 邏輯運算符
  • 三目運算符

算術運算符:

JAVA中的運算符(算術運算符, 指派運算符 , 邏輯運算符 ,三目運算符 )運算符

注意:

  • 如果+号的兩邊都是數字的話,那麼這個+表示的數學上的加法。
  • 如果+号的兩邊,隻有有一個字元串,那麼這個+表示的是字元串連接配接符。
  • (++與- -)單獨使用:放在操作數的前後對結果沒有差別。
  • (++與- -)運算使用:放在操作數的前後是有差別的,放在前邊先自增或自減在參與運算,放在操作數的後邊是先進行運算在進行自增或者自減。
  • 除法運算時如果兩邊都是整數 結果就是整數(整除),如果兩邊至少存在一個小數,結果就是小數。

例:

int x=10;
int y=20; 
int sum=(x++) +(--y) +(++x) +(y--) ;
求x,y,sum的值。
 x = 12; 
 y = 18;
 sum = 60;
           

指派運算符:

指派運算符             作用
=                     a = b;将b的值指派給a。
+=                    a+=b;即就是a=a+b;将a+b的值指派給a
-=                    a-=b;即就是a=a-b;将a-b的值指派給a
/=                    a/=b;即就是a=a/b;将a/b的值指派給a
*=                    a*=b;即就是a=ab;将ab的值指派給a
%=                    a%=b;即就是a=a%;将a%b的值指派給a
           

注意:左邊必須是一個變量。

邏輯運算符:

邏輯運算符                  作用 
&                          并且 有false則false
|                          或者 有true則true
^                          異或 相同為false不同為true
!                         非 非false則true 非true則false
&&                         短路與
||                         短路或
           

注意:

  • &&和&的差別:最終的結果一樣;但是&&具有短路效果,左邊為false,右邊不執行。
  • ||和|的差別:最終的結果一樣;但是||具有短路效果,左邊為true,右邊不執行。
  • 運算的結果肯定是一個boolean類型。

位運算符:

指的就是二進制之間的轉換。

按位與 (&)  :兩位全為1,結果為1,否則為0;
按位或 (|)  :兩位有一個為1,結果為1,否則為0;

按位取反(~):0 變 1, 1變0;

按位異或(^):兩位,如果相同,結果為0;如果不同,結果為1;
           

注意:

  •  在使用時,需要将運算數都轉換為二進制再進行運算,若為負數則使用補碼表示。
  •  位運算符與邏輯運算符(邏輯與&&、邏輯或||、邏輯非! )有點相似。但是,邏輯運算符隻能操作boolean變量。

例:

-11的“原碼”是 : 1000 0000 0000 1011
求出對應的反碼 : 1111 1111 1111 0100
求出對應的補碼 : 1111 1111 1111 0101
是以在計算機中 ‘-11’ 對應的二進制為 ‘ 1111 1111 1111 0101 ’
           

三目運算符:

三目運算符的文法:   變量=布爾表達式 ? 值1 : 值2;

if(a<b)
    min=a;
else
    min=b;

可以用下面的條件運算符來處理

min=(a<b)?a:b;//有兩個運算符,三個操作對象,是以也叫三目運算符。
//"(a<b)?a:b"是一個"條件表達式"
//它是這樣執行的:  如果a<b為真,則表達式取a值,否則取b值.
           

例:

int a = 1, b = 2, z, c = 3;

z = a > b ? a : (b > c ? b : c);
//b不大于3是以括号裡為3,a不大于b,是以輸出:後邊的數3.
cout << "z:" << z << endl; 

輸出的結果是:z:3
           

繼續閱讀