溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中自增和自減操作符(++/--)的那些事

發(fā)布時間:2020-10-10 16:29:33 來源:腳本之家 閱讀:173 作者:人無名,則可專心練劍 欄目:編程語言

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

在JAVA語言中存在著很多運算符,但是在實際開發(fā)中我們或許很少用到它們,在初次學習中卻時常出現它們的身影,對于這些運算符的含義和用法,是否還記得呢?

1. 概述

自增操作符(++)和自減操作符(--)是對變量進行加1和減1的操作。

2.分類說明

++和--是對變量進行自增1和自減1的簡寫操作符。許多編程任務中經常需要對變量加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的效果是一樣的。然而,當用在表達式中不單純只進行自增和自減時,他們就會產生不同的效果。具體如下表,描述了自增和自減操作符的不同之處,并且給出了示例:

操作符

名稱

描述

示例(假設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中從左到右對操作數求值。在右邊操作數的任何部分被求值之前,二元操作符左邊的操作數先求值。這一規(guī)則的優(yōu)先級高于表達式的任何其他規(guī)則。下面是一個例子:

int i = 1;
int k = ++i + i * 3;
// 分析可知: ++i求值后返回2。當求i*3的值時,i是2。因此k的值是8。

//------------對比以下代碼------------------
int i = 1;
int k = i*3 + ++i ;
// 分析可知:從左往右,當求i*3的值時,i是1,后算++i,++i整體是2。因此k的值是5。

3.總結

自增在平時的Java筆試和面試中經常作為考查程序員的基礎題多次出現,也是比較容易混淆的知識點。在平時編程中使用自增操作符和自減操作符可以使表達式更加簡短,但也會使他們比較復雜且難以讀懂。應該避免在同一個表達式中使用這些操作符修改多個變量或多次修改同一個變量,如int k = ++i + i * 3。

4.說明

本文摘自《Java語言程序設計與數據結構》(基礎篇)第11版第2章2.14節(jié)內容,并由本人結合實例并補充擴展了一些實例代碼,本文用于本人學習及經驗總結。

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI