程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java編程那些事兒27—其它運算符

Java編程那些事兒27—其它運算符

編輯:關於JAVA

4.6 其它運算符

對於無法歸類,或者單獨占一類的運算符,將在下面進行介紹。

l++、--

這兩個運算符是程序中的遞增和遞減運算符。其意義參照以下示例代碼:

int n = 0;
n++;// n = n + 1
System.out.println(n);

n++的意義就是對原來變量n的值加1以後再賦值給自身,因為原來變量n的值是0,加1以後則變成1。

同理,遞減運算符的意義也是這樣,示例代碼:

int m = 0;
m--;
System.out.println(m);

m—的意義就是對原來變量m的值減1以後再賦值給自身,則m的值變成-1。

需要注意的是++和—只能操作變量,而不能操作其他的內容,以下使用都是錯誤的:

int a = 0;
int b = 0;
(a + b)++;  //錯誤
final int M = 1;
M++;   //錯誤
5++;   //錯誤

在實際書寫時,++和—既可以寫在變量的前面,也可以寫在變量的後面,例如:

int k = 0;
k++;
++k;

同理,--也可以這樣,那麼這些在實際使用中有什麼區別呢?其實對於變量的值來說,沒有區別,也就是++無論寫後面還是寫前面,變量的值肯定增加1,--無論寫在後面還是前面,變量的值都減1。其最大的區別在於整個式子的值,如n++,規則如下:

1)++或—寫在變量前面,則該式子的值等於變量變化以後的值。

2)++或—寫在變量後面,則該式子的值等於變量變化以前的值。

示例代碼如下:

int n = 1;
int m= 1;
n++;  //n的值變為2
++m;  //m的值變為2
int k = n++;//n的初始值是2,則n++的值是2,結果n的值為3,k的值為2
int j = ++m; //m的初始值是2,則++m的值是3,結果m的值是3,j的值為3

同理,--也是這樣。

下面是一個稍微綜合點的示例:

int a = 0;
int b = 0;
a = b++;//a為0,b為1
a = ++b;//a為2,b為2
b = a++;//a為3,b為2
a = ++b;//a為3,b為3

說明:注釋部分為對應行代碼運行以後,a和b的值。

在程序開發中,可以使用該區別簡化代碼的書寫,但是不推薦這樣做,因為這樣將增加閱讀代碼的難度。

l +、-

前面介紹過加減運算符,其實+、-還有另外一個意義,也就是代表正負,通常情況下正號可以省略,而負號可以和數值、變量以及運算式進行結合,示例代碼如下:

int a = 0;
int b = 1;
int c = -5;
c = -a;
c = -(a + b);
l? :

這個運算符稱為條件運算符,其作用是根據判斷的結果獲得對應的值,語法格式如下:

條件式 ? 值1 : 值2

語法要求條件式部分必須是boolean類型,可以是boolean值,也可以是boolean變量,或者是關系運算符或邏輯運算符形成的式子,值1和值2必須能夠轉換成相同的類型。

功能說明:如果條件式的結果是true,則整個式子的值取值1的值,否則取值2的值。示例代碼如下:

int x = 10;
int y = 20;
int max = x > y ? x : y;//因為x大於y,則取變量x的值,然後賦值給max
int a = -10;
int abs = a > 0 ? a : -a;//實現求絕對值得功能
l()

括號,也是運算符的一種,作用是可以讓括號內部的計算首先進行,這個和數學上一致,只是程序代碼中可以使用這個組合任意的合法運算式。示例代碼為:

int a = 1 + 2 * 3;
int a = (1 + 2) * 3;//和以上代碼的運行結果不一致

其實每個運算符都有自己的優先級,使用括號可以提升對應式子的優先級。關於運算符優先級的概念,後續將進行介紹。

文章來源:http://blog.csdn.net/Mailbomb/archive/2008/06/02/2502929.aspx

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved