問題的關鍵是java中表達式的執行順序: 從左向右執行 所以表達式必須先將右面的值計算完成之後才能將值付給左面(謹記這一點!)
關鍵的一步:j=j++;
理解:一、先取值:將j的值作爲j++表達式的值
二、再++:將j的值自增1
三、再賦值:將j++表達式的值,即j的值(0)賦值給 j
(因爲右面的表達式是先找到j ,而不是++ 所以先取值,而不是先++)
同理:理解 j=++j;(一般這麼寫 只是爲了理解 ++在前和在後的區別)
一、先++:將j的值自增1;
二、在取值:將++j的值作爲 右面表達式的值
三、再賦值:將右面表達式的值賦值給j
(因爲右面表達式先找到的是++,所以先++,後取值)
--同理