Java 運算子

腳踏車VB你們發表於2018-12-03

Java 運算子

計算機的最基本用途之一就是執行數學運算,作為一門計算機語言,Java也提供了一套豐富的運算子來操縱變數。我們可以把運算子分成以下幾組:

1. 算術運算子

2. 關係運算子

3. 位運算子

4. 邏輯運算子

5. 賦值運算子

6. 其他運算子

。。。

算術運算子

算術運算子用在數學表示式中,它們的作用和在數學中的作用一樣。下表列出了所有的算術運算子。

下面的例項假設整數變數A的值為10,變數B的值為20:

運算子      描述                                                例子

+              加法 - 相加運算子兩側的值                A + B等於30

-              減法 - 左運算元減去右運算元            A – B等於-10

*              乘法 - 相乘運算子兩側的值                A * B等於200

/              除法 - 左運算元除以右運算元            B / A等於2

             取模 - 左運算元除以右運算元的餘數   B%A等於0

++         自增 - 運算元的值增加1                    B++ 或 ++B 等於 21

--             自減 - 運算元的值減少1                    B-- 或 --B 等於 19

。。。

關係運算子

下面為Java支援的關係運算子

下面中的例項整數變數A的值為10,變數B的值為20:

運算子     描述                                                                                                          例子

==         檢查如果兩個運算元的值是否相等,如果相等則條件為真。                     (A == B)為假(非真)。

!=         檢查如果兩個運算元的值是否相等,如果值不相等則條件為真。              (A != B) 為真。

>             檢查左運算元的值是否大於右運算元的值,如果是那麼條件為真。             (A> B)非真。

<             檢查左運算元的值是否小於右運算元的值,如果是那麼條件為真。             (A <B)為真。

> =         檢查左運算元的值是否大於或等於右運算元的值,如果是那麼條件為真。 (A> = B)為假。

<=         檢查左運算元的值是否小於或等於右運算元的值,如果是那麼條件為真。 (A <= B)為真。

。。。

位運算子

Java定義了位運算子,應用於整數型別(int),長整型(long),短整型(short),字元型(char),和位元組型(byte)等型別。

位運算子作用在所有的位上,並且按位運算。假設a = 60,和b = 13;它們的二進位制格式表示將如下:

A = 0011 1100

B = 0000 1101

-----------------

A&b = 0000 1100

A | B = 0011 1101

A ^ B = 0011 0001

~A= 1100 0011

下面列出了位運算子的基本運算,假設整數變數A的值為60和變數B的值為13:

運算子    描述                                                                                                                                     例子

           按位與運算子,當且僅當兩個運算元的某一位都非0時候結果的該位才為1。                        (A&B) 得到12,即0000 1100

|            按位或運算子,只要兩個運算元的某一位有一個非0時候結果的該位就為1。                        (A | B)  得到61,即 0011 1101

^            按位異或運算子,兩個運算元的某一位不相同時候結果的該位就為1。                                (A ^ B)得到49,即 0011 0001

?            按位補運算子翻轉運算元的每一位。                                                                                    (?A)     得到-60,即1100 0011

<<        按位左移運算子。左運算元按位左移右運算元指定的位數。                                                 A << 2   得到240,即 1111 0000

>>        按位右移運算子。左運算元按位右移右運算元指定的位數。                                                 A >> 2   得到15即 1111

>>>    按位右移補零運算子。左運算元的值按右運算元指定的位數右移,移動得到的空位以零填充。 A>>>2   得到15即0000 1111

。。。

邏輯運算子

下面列出了邏輯運算子的基本運算,假設布林變數A為真,變數B為假

運算子   描述                                                                                                                                              例子

&&       稱為邏輯與運算子。當且僅當兩個運算元都為真,條件才為真。                                                     (A && B)為假。

| |           稱為邏輯或運算子。如果任何兩個運算元任何一個為真,條件為真。                                             (A | | B)為真。

          稱為邏輯非運算子。用來反轉運算元的邏輯狀態。如果條件為true,則邏輯非運算子將得到false。 !(A && B)為真。

。。。

賦值運算子

下面是Java語言支援的賦值運算子:

運算子     描述                                                                                                    例子

=             簡單的賦值運算子,將右運算元的值賦給左側運算元                            C = A + B將把A + B得到的值賦給C

+ =         加和賦值運算子,它把左運算元和右運算元相加賦值給左運算元        C + = A等價於C = C + A

- =         減和賦值運算子,它把左運算元和右運算元相減賦值給左運算元        C - = A等價於C = C -A

* =         乘和賦值運算子,它把左運算元和右運算元相乘賦值給左運算元        C * = A等價於C = C * A

/ =         除和賦值運算子,它把左運算元和右運算元相除賦值給左運算元        C / = A等價於C = C / A

(%)= 取模和賦值運算子,它把左運算元和右運算元取模後賦值給左運算元    C%= A等價於C = C%A

<< =     左移位賦值運算子                                                                                C << = 2等價於C = C << 2

>> =     右移位賦值運算子                                                                                C >> = 2等價於C = C >> 2

&=         按位與賦值運算子                                                                                C&= 2等價於C = C&2

^ =         按位異或賦值運算子                                                                            C ^ = 2等價於C = C ^ 2

| =         按位或賦值運算子                                                                                C | = 2等價於C = C | 2

。。。

條件運算子(?:)

條件運算子也被稱為三元運算子。該運算子有3個運算元,並且需要判斷布林表示式的值。該運算子的主要是決定哪個值應該賦值給變數。

variable x = (expression) ? value if true : value if false

。。。

instanceOf 運算子

該運算子用於操作物件例項,檢查該物件是否是一個特定型別(類型別或介面型別)。

instanceof運算子使用格式如右:( Object reference variable ) instanceOf  (class/interface type)

如果運算子左側變數所指的物件,是運算子右側類或介面(class/interface)的一個物件,那麼結果為真。

。。。

Java運算子優先順序

當多個運算子出現在一個表示式中,誰先誰後呢?這就涉及到運算子的優先順序別的問題。在一個多運算子的表示式中,運算子優先順序不同會導致最後得出的結果差別甚大。

例如,(1+3)+(3+2)*2,這個表示式如果按加號最優先計算,答案就是 18,如果按照乘號最優先,答案則是 14。

再如,x = 7 + 3 * 2,這裡x得到13,而不是20,因為乘法運算子比加法運算子有較高的優先順序,所以先計算3 * 2得到6,然後再加7。

下面具有最高優先順序的運算子在最上面,最低優先順序的在底部。

類別           運算子             關聯性

字尾          () [] . (點運算子) 左到右

一元          + + - !?         從右到左

乘性      * /%                 左到右

加性      + -                     左到右

移位      >> >>>  <<     左到右

關係      >> = << =     左到右

相等      ==  !=             左到右

按位與      &                     左到右

按位異或 ^                      左到右

按位或      |                         左到右

邏輯與      &&                     左到右

邏輯或      | |                     左到右

條件         ?:                     從右到左

賦值 = + = - = * = / =%= >> = << =&= ^ = | = 從右到左

逗號                                 左到右


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900592/viewspace-2222572/,如需轉載,請註明出處,否則將追究法律責任。

相關文章