1. 程式人生 > >java基本語法——運算子

java基本語法——運算子

一、算術運算子

運算子

運算

範例

結果

+

正號

+3

3

-

負號

b=4; -b

-4

+

5+5

10

-

6-4

2

*

3*4

12

/

5/5

1

%

取模

5%5

0

++

++

自增(前):先運算後取值

自增(後):先取值後運算

a=2;b=++a;

a=2;b=a++;

a=3;b=3

a=3;b=2

- -

- -

自減(前):先運算後取值

自減(後):先取值後運算

a=2;b=- -a

a=2;b=a- -

a=1;b=1

a=1;b=2

+

字串相加

“He”+”llo”

“Hello”

注意:

1.如果對負數取模,可以把模數負號忽略不記,如:5%-2=1;但被模數是負數就另當別論,例如:-21%5=-1。

2.對於除號“/”,它的整數除和小數除是有區別的:整數之間做除法時,只保留整數部分而捨棄小數部分。 例如:

int x=3510;
x=x/1000*1000;         //x的結果是3000

3.“+”除字串相加功能外,還能把非字串轉換成 字串.例如:

System.out.println("5+5="+5+5); //列印結果是5+5=55

三、賦值運算子

  1. 符號:=
  2. 作用:將資料、變數或物件賦值給相應型別的變數。例如:
    int i = 75;    //將資料賦值給變數
    
    long l = i;    //將變數賦值給變數
    
    Object object = new Object();       //建立物件

     

  3. 擴充套件賦值運算子: +=, -=, *=, /=, %=

三、比較運算子

運算子

運算

範例

結果

==

相等於

4==3

false

!=

不等於

4!=3

true

<

小於

4<3

false

>

大於

4>3

true

<=

小於等於

4<=3

false

>=

大於等於

4>=3

true

instanceof

檢查是否是類的物件

“Hello”  instanceof  String

true

注意:

1.比較運算子的結果都是boolean型,也就是要麼是true,要麼是false。

2.比較運算子“==”不能誤寫成“=” 。

四、邏輯運算子

運算子

運算

範例

結果

&

AND()

false & true

false

|

OR()

false|true

true

^

XOR(異或)

true^false

true

!

Not()

!true

false

&&

AND(短路)

false&&true

false

||

OR(短路)

false||true

true

注意:

1.邏輯運算子用於連線布林型表示式,在Java中不可以寫成3<x<6,應該寫成x>3 && x<6 。

2.“&”和“&&”的區別:

單&時,左邊無論真假,右邊都進行運算;

雙&時,如果左邊為真,右邊參與運算,如果左邊為假,那麼右邊不參與運算。

3.和“||”的區別同理,雙或時,左邊為真,右邊不參與運算。

4.異或( ^ )與或( | )的不同之處是:對於 ^ 而言,當左右都為true時,結果為false。

五、位運算子

位運算子

運算子

運算

範例

<<

左移

3 << 2 = 12 --> 3*2*2=12

>>

右移

3 >> 1 = 1  --> 3/2=1

&

按位與

6 & 3 = 2

|

按位或

6 | 3 = 7

^

按位異或

6 ^ 3 = 5

~

按位取反

~9=6

位運算子的細節

<<

被移除的高位丟棄,空缺位補0。

>>

被移位的二進位制最高位是0,右移後,空缺位補0;

最高位是1,空缺位補1。

&

二進位制位進行&運算,只有1&1時結果是1,否則是0;

|

二進位制位進行 | 運算,只有0 | 0時結果是0,否則是1;

^

相同二進位制位進行 ^ 運算,結果是0;1^1=0 , 0^0=0

不相同二進位制位 ^ 運算結果是1。1^0=1 , 0^1=1

~

二進位制位進行~運算,0修改為1,1修改為0

注意:位運算是指直接對二進位制位進行運算

六、三元運算子

格式:

(條件表示式)?表示式1:表示式2;

如果條件為true,運算後的結果是表示式1;

如果條件為false,運算後的結果是表示式2;

例如:

int store = 12;

System.out.println(store<=5?"庫存不足!":"庫存量:"+store);       //輸出結果為庫存量:12

以上程式碼等價於如下的“if…else”語句:

int store = 12;

if (store<5){

   System.out.println("庫存不足!");

}else{

   System.out.println("庫存量:"+store);

} 

注意:

    三元運算子“?:”中的表示式1和表示式2,只有其中一個被執行。例如:

int x = 5,y = 7;
System.out.println(x>y?x++:y++); //輸出結果為7
System.out.println("x="+x);    //x的值為5
System.out.println("y="+y);    //y的值為8

七、Java中運算子的優先順序與結合方向

優先順序

運算子

描述

結合性

1

.、[]、( )

域、陣列、括號

從左至右

2

++ 、--、-、!

一元運算子

從右至左

3

*、/、%

乘、除、取餘

從左至右

4

+ 、-

加、減

從左至右

5

<< 、>> 、>>>

位運算

從左至右

6

< 、<=、>、>=

邏輯運算

從左至右

7

== 、!=

邏輯運算

從左至右

8

&

按位與

從左至右

9

^

按位異或

從左至右

10

|

按位或

從左至右

11

&&

邏輯與

從左至右

12

||

邏輯或

從左至右

13

?:

條件運算

從右至左

14

=、*=、/=、%= 、+=、-=、<<=、>>=、>>>=、&=、^=、|=

位運算

從右至左