[問題] 關於一個小程式的問題

看板java作者 (水晶尼克)時間11年前 (2014/02/17 23:25), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/2 (看更多)
public class Static { static { int x = 5; } static int x,y ; public static void main(String args[]) { x--; myMethod(); System.out.println( x + y + ++x ); } public static void myMethod() { y = x++ + ++x ; } } 想請問各位大大為何這段程式碼執行結果為何是3 ? 我自己理解是 x-- 後 x為-1 所以 y = x++ + ++x ; 之前 x為-1 ++x先算所以x變為0 所以 y = 0 + 0 所以 y=0 x++後算所以 x=1 所以 myMethod 執行之後 x=1 ,y=0 接著是 ( x + y ++x ) y=0 所以這式子其實是 x + ++x 一樣 ++x 先算所以 x變2 所以為 2+2=4 但很明顯結果是3.... 所以一定是哪裡有問題.... 請問這是怎麼回事? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.239.211.6

02/17 23:27, , 1F
Java 的二元運算子會隔開 ++ 的效應
02/17 23:27, 1F

02/17 23:29, , 2F
所有左邊的效應會結算完右邊的計算才會開始
02/17 23:29, 2F

02/17 23:35, , 3F
可是那為什麼一開始myMethod裡面沒有隔開算呢?
02/17 23:35, 3F
文章代碼(AID): #1J0YdgYi (java)
討論串 (同標題文章)
文章代碼(AID): #1J0YdgYi (java)