在編程時,經會使用到變量的自增和自減操作,尤其在循環中用的最多。以自增為例,有兩種自增方式,前置和后置,即i++和++i,他們的不同點在於i++是程序執行完畢后進行自增,++i程序開始時自增,實例如下:
package mianshi; public class zizengtest { public static void main(String[] args) { int i=1; System.out.println(i++ + i++); System.out.println("i="+i); System.out.println(i++ + ++i); System.out.println("i="+i); } }
運行結果:
3 i=3 8 i=5
很多人可能以為自己i++和++i概念了解的很明白,但是其實這東西沒你想象的那么簡單,比如以上的運行結果就會讓你很迷惑,假如你質疑這個運行結果的話大可自己一試。
接下來我解釋一下這幾個操作:
i+++i++,這個首先是i++操作,此時注意i++的概念是程序執行完畢后進行自增,所以運算的值還是1,(你可以理解為i++就是一個指令讓下一個i的為2,所以還是1)但是自增操作還是有的所以此時i為2,然后再加一個i++,還是程序執行完畢后進行自增所以運算的值為2,所以i+++i++就是1+2=3,在自增操作后i為3。
i++ + ++i,首先i++操作,此時運算值為3,但是自增操作還是有的所以此時i為4,接下來執行++i,++i直接執行所以值為5,i++ + ++i=8,i的值為5。
總結:你可以把i++當做一個指令讓下一次i的值加1,而本身運算值不變
++i,直接執行i+1。