自增(++)和自減(--)運算符

成都創(chuàng)新互聯(lián)公司長期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為豐鎮(zhèn)企業(yè)提供專業(yè)的成都網(wǎng)站制作、網(wǎng)站建設(shè),豐鎮(zhèn)網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
在JAVA語言中存在著很多運算符,但是在實際開發(fā)中我們或許很少用到它們,在初次學(xué)習(xí)中卻時常出現(xiàn)它們的身影,對于這些運算符的含義和用法,是否還記得呢?
1. 概述
自增操作符(++)和自減操作符(--)是對變量進行加1和減1的操作。
2.分類說明
++和--是對變量進行自增1和自減1的簡寫操作符。許多編程任務(wù)中經(jīng)常需要對變量加1或者減1,所以采用這兩個操作符會方便許多。例如,下面的代碼是對i自增1,而對j自減1:
int i = 3, j = 3; i++; // i become 4 j--; // j become 2
i++讀為i加加,i--讀為i減減。這些操作符分別稱為后置自增操作符和后置自減操作符,因為操作符++和--放在變量后面。這些操作符也可以放在變量前面,比如:
int i = 3, j = 3; ++i; // i becomes 4 --j; // j becomes 2
--i將i增加1,--j將j減去1。這些操作符稱為前置自增操作符和前置自減操作符。
如你所見,前面的例子中,i++和++i的效果,或者i--和--i的效果是一樣的。然而,當(dāng)用在表達式中不單純只進行自增和自減時,他們就會產(chǎn)生不同的效果。具體如下表,描述了自增和自減操作符的不同之處,并且給出了示例:
|
操作符 |
名稱 |
描述 |
示例(假設(shè)i=1) |
|
++var |
前置自增 |
將var加1,在語句中使用新的var值 |
Int j = ++i; // j is 2, i is 2 |
|
var++ |
后置自增 |
將var加1,但是在語句中使用原來的var值 |
Int j = i++; // j is 1, i is 2 |
|
--var |
前置自減 |
將var減1,在語句中使用新的var值 |
Int j = --i; // j is 0, i is 0 |
|
var-- |
后置自減 |
將var減1,但是在語句中使用原來的var值 |
Int j = i--; // j is 1, i is 0 |
下面演示前置形式的++(或者--)和后置形式的++(或者--)的補充示例。考慮以下代碼:
int i = 10;
int newNum = 10 * i++; //左邊等價于---》 int newNum = 10 * i;
System.out.print("i is " + i //接上條 i = i + 1;
+ ", newNum is " + newNum);執(zhí)行輸出:
i is 11, newNum is 100
上述中i自增1,然后返回i原來的值來參與乘法運算。這樣,newNum的值就為100。如果如下所示將i++換為++i:
int i = 10;
int newNum = 10 * (++i); //左邊等價于---》 i = i + 1;
System.out.print("i is " + i //接上條 int newNum = 10 * i;
+ ", newNum is " + newNum);執(zhí)行輸出:
i is 11, newNum is 110
上述中 i自增1,然后返回i的新值,并參與乘法運算。這樣,newNum的值就為110。
下面是另一個例子:
double x = 1.0; double y = 5.0; double z = x-- + (++y);
在這三行程序執(zhí)行完之后,y的值為6.0,z的值為7.0,而x的值為0.0。
Java中從左到右對操作數(shù)求值。在右邊操作數(shù)的任何部分被求值之前,二元操作符左邊的操作數(shù)先求值。這一規(guī)則的優(yōu)先級高于表達式的任何其他規(guī)則。下面是一個例子:
int i = 1; int k = ++i + i * 3; // 分析可知: ++i求值后返回2。當(dāng)求i*3的值時,i是2。因此k的值是8。 //------------對比以下代碼------------------ int i = 1; int k = i*3 + ++i ; // 分析可知:從左往右,當(dāng)求i*3的值時,i是1,后算++i,++i整體是2。因此k的值是5。
3.總結(jié)
自增在平時的Java筆試和面試中經(jīng)常作為考查程序員的基礎(chǔ)題多次出現(xiàn),也是比較容易混淆的知識點。在平時編程中使用自增操作符和自減操作符可以使表達式更加簡短,但也會使他們比較復(fù)雜且難以讀懂。應(yīng)該避免在同一個表達式中使用這些操作符修改多個變量或多次修改同一個變量,如int k = ++i + i * 3。
4.說明
本文摘自《Java語言程序設(shè)計與數(shù)據(jù)結(jié)構(gòu)》(基礎(chǔ)篇)第11版第2章2.14節(jié)內(nèi)容,并由本人結(jié)合實例并補充擴展了一些實例代碼,本文用于本人學(xué)習(xí)及經(jīng)驗總結(jié)。
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對創(chuàng)新互聯(lián)的支持。
文章名稱:Java中自增和自減操作符(++/--)的那些事
網(wǎng)頁路徑:http://chinadenli.net/article20/ggpcco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、關(guān)鍵詞優(yōu)化、App設(shè)計、網(wǎng)站營銷、網(wǎng)站策劃、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)