後置インクリメントと前置インクリメントがわからない
「毎日少しずつでも更新していきたい」
とか書いておいて次回更新がだいぶ先になってる。これくらいは想定していましたがここまで想定通りだとビックリです。対策を打たねば。
さて本題。インクリメントの仕組みがよくわからない。
public static void main(String[] args) {
// TODO Auto-generated method stub
int x=5;
int y= ++x + x--;
System.out.println(x);
System.out.println(y);
}
実行結果:
5
12
後置デクリメントの方が優先順位が高いから先に評価されて
y= ++x + 5; //xを評価してから、x=x-1;を実行。
次に前置インクリメントが評価されて
y= 5 + 5; //x=x+1; を実行してから、評価。
でyには10が代入されると思ったのですが、結果は12。
おそらく前置インクリメント→後置デクリメント の順で実行されているのだと思いますが優先順位は後置の方が高いのでなぜなのか疑問です。もしわかるかたいらっしゃればコメントなどで教えて下さると幸いです。