2013-10-27 33 views
6
System.out.println(info + ": " + ++x); 

是本聲明等效於java的複雜語句的執行次序

x++; 
System.out.println(info + ": " + x); 

System.out.println(info + ": " + x++); 

等同於

System.out.println(info + ": " + x); 
x++; 

如JVM僅可以處理在一個語句時間,它是否分開這些狀態這樣的嗎?

+2

我來到這裏期待一些瘋狂的線程瘋狂。 –

+0

可能是...的重複,以及數百個其他問題(http://stackoverflow.com/questions/484462/difference-between-i-and-i-in-a-loop和其他問題) – Marco13

回答

3

是的,是的。

++x將在包含語句之前執行,即x的值將在使用之前遞增。

x++將在包含語句後執行,即將使用該值,然後將變量x遞增。

要清楚:在這兩種情況下,變量x的值都將被更改。

+0

我在問while執行該語句jvm將如何分割它? – Ruturaj

+0

這個答案不正確。獲得該值後,x ++將進行後遞增。 – EJP

+1

@EJP就是我上面所說的 – Szymon