看板 java 關於我們 聯絡資訊
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
LPH66:Java 的二元運算子會隔開 ++ 的效應 02/17 23:27
LPH66:所有左邊的效應會結算完右邊的計算才會開始 02/17 23:29
CrystalNik:可是那為什麼一開始myMethod裡面沒有隔開算呢? 02/17 23:35