我想知道爲什麼這段代碼給出輸出112
最後一位數字2
如何創建?Java中的前後綴「++」運算符的語義
public static void main(String[] args) {
int i = 0;
System.out.print(++i);
System.out.print(i++);
System.out.print(i);
爲什麼會發生這種情況?
我想知道爲什麼這段代碼給出輸出112
最後一位數字2
如何創建?Java中的前後綴「++」運算符的語義
public static void main(String[] args) {
int i = 0;
System.out.print(++i);
System.out.print(i++);
System.out.print(i);
爲什麼會發生這種情況?
您的片段它譯爲
int i = 0;
i = i + 1; // 1
System.out.print(i); // 1
System.out.print(i); // 1
i = i + 1; // 2
System.out.print(i); // 2
這就是爲什麼最後的結果是一個2
++i
它是由印刷方法被調用之前遞增變量和i++
這是incrementin g執行方法後的變量。
i++
是增量後運算符,它的表達式值爲舊值i
,但是增加i
的副作用。值爲1
,但它將i
更改爲2
。
i是初始爲0,那麼它是預加和印刷讓你有第一1,然後將其再次印刷和你有第二1,則後加一,然後打印的最後時刻,你必須2
您在i
應用兩個增量。的初始值是0,因此兩個增量(++i
和i++
)後它將成爲2.
兩個i++
和++i
通過一個遞增的i
值。
它們類似於
i = i+1;
但++i
一個遞增的i
值然後使用它,所以0
變得1
並打印出來,同時i++
首先使用的值,然後遞增的i
值,所以打印值爲1
然後它變成2
,因此最後一個數字(最終值爲i
)爲2.
簡單地;
在後遞增,變量被讀取後增量完成。
在預增量,變量值首先遞增,然後在表達式中使用。
當我們在使用後或預增操作符它增加了價值。
後增量運算符(i++
)第一分配值,然後遞增它。預增量運算符(++i
)先遞增,然後賦值。 他們都這樣的表現:
int i=0;
i=i++;
System.out.println(i); //1
i=++i;
System.ou.println(i); //1
運行此代碼時:
public static void main(String[] args) {
int i = 0; //i=0;
System.out.print(++i); // increments i to i=1, and prints i
System.out.print(i++); // prints i and then increments it to i=2
System.out.print(i); // prints i, i.e. 2
}
這沒有什麼關係的迭代。 – Cairnarvon 2013-05-12 09:58:23
'++ i'表示增量並讀取'i','i ++'表示讀取和增加'i','i'表示讀取'i'。 – 2013-05-12 10:02:14
作爲一般規則;從不這樣做,它會導致不可讀的代碼,增加並單獨使用一個值 – 2013-05-12 10:35:55