Java基礎教程(7)--運算符

  現在,我們已經學會了如何聲明和初始化變量,但你可能想知道如何操作它們。運算符是對一個,兩個或三個操作數執行特定操作並返回結果的特殊符號。下表列出了Java中的運算符:

  表格中的運算符是按照從上到下優先級依次降低的順序列出的。優先級較高的運算符在優先級相對較低的運算符之前進行求值。同一行中的運算符具有相同的優先級。根據操作數個數的不同,可將運算符分爲一元、二元和三元運算符。在二元運算符中,除了賦值運算符是按照從右到左的順序進行運算,其餘所有的二元運算符都是按照從左到右的順序進行運算的。下面依次對這些運算符進行介紹。

1.算術運算符

  算術運算符用來進行基本的算術運算,包括+、-、*、/和%。其中,+、-、*、/代表最基本的四則運算,但是要注意的是,當參與除法運算的兩個操作數都是整數時,代表整數除法,例如7/2=3;當至少有一個操作數是浮點數時,代表浮點除法,例如7.0/2=7/2.0=7.0/2.0=3.5。%表示整數的求餘(或者稱爲取模)操作,例如7%2=1。

2.關係運算符

  關係運算符用來判斷左右表達式是否滿足某種關係,包括<、>、<=、>=、==和!=,分別表示小於、大於、小於等於、大於等於、等於和不等於。關係運算符的結果是boolean類型,例如3<5的結果是true,2==4的結果是false。

3.邏輯運算符

  邏輯運算符用來對兩個布爾值進行運算,包括&&、||和!,分別表示邏輯與、邏輯或和邏輯非。&&和||是按照“短路”的方式來進行運算的,即如果左邊的操作數已經能夠確定表達式的值,那麼右邊的操作數就不會計算,例如x!=0&&32/x>4,如果x等於0,那麼右邊的表達式就不會進行運算,也就不會產生錯誤。邏輯非用來將後面的布爾值取反,例如3<2的結果是false,那麼!3<2的結果就是true。

4.自增和自減運算符

  自增運算符++和自減運算符--用來對當前變量加1或減1。++和--只能作用於變量,不能作用於表達式或字面量,例如a++是正確的,(a+1)++和2++都是錯誤的。++和--既可以放在變量左邊,也可以放在變量右邊,++a表達式的結果是加1後a的值,a++表達式的結果是加1前a的值。當然無論是++a還是a++,最後a的值都會加1。

5.位運算符

  位運算符可以直接對整數在內存中的二進制位進行操作,包括按位與&、按位或|、按位異或^、按位取反~、左移<<、右移>>和無符號右移>>>。左移會用0填充低位,右移會用符號位填充高位,無符號右移用0填充高位。移位運算符的右操作數需要完成模32的運算(如果左操作數時long類型,則需要模64),例如1<<35等價於1<<3。
  應用在布爾值上時,&和|也會得到布爾值。不過不同於&&和||,&和|在運算時不採用“短路”的方式,也就是說,無論左邊的操作數是true還是false,右邊都會進行運算。

6.賦值運算符

  賦值運算符用來將一個值指定給一個變量,例如a=1。賦值運算符左邊一定是變量,不能是表達式或字面量。將=和算術運算符或位運算符(~除外)結合,可以得到增強型的賦值運算符+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>=、>>>=,其作用是左邊的變量先和右邊的操作數進行運算,然後再賦值給左邊的變量,例如a+=3等價於a=a+3。

7.其他運算符

  除了上面提到的運算符外,還有一元加(+)、一元減(-)和唯一的一個三元運算符(?:)。一元加作用於數字字面量時,用於顯式地說明該字面量是正數,例如+1表示正1;作用於表達式或變量時,寫與不寫沒有區別。一元減用於計算它後面地操作數地相反數。對於三元運算符,如果問號前的表達式爲true,那麼整個表達式的結果就是第一個表達式的結果;否則結果爲第二個表達式的結果。例如,1<2?3:4的結果是3,1>2?3:4的結果是4。

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