解答いただきありがとう御座います。
学習アプリでもそのような説明がありましたが、算数的な考えしかできておらず
int y = ++x; は y=1+x と考え、
int y = x++; は y=x で一旦おいておいて、次の行の処理で足されたはずの1が出てくるのかな?と思ってしまい、xが変数であることが完全に抜け落ちていました。
自分の考えが上手く言葉にできず伝えきれないのですが、思っていた処理の流れとは全く違っていたのでもう一度学習し直しをしたいと思います。
0
ベストアンサー
yに代入される値が異なるだけで、
二行目を実行した後にxが4になるという挙動は同じです。
疑問に思ったら実際に試してみると勉強になりますよ。
Java
1classMain{2publicstaticvoidmain(String[] args){3{4int x =3;5int y =++x;67System.out.println("前置: "+ x +", "+ y);8}9{10int x =3;11int y = x++;1213System.out.println("後置: "+ x +", "+ y);14}15}16}
解答いただきありがとう御座います。退勤中でしたので返信が遅くなりました。
また、理解していた内容と全く違う挙動で驚いています。
学習アプリでは
int x = 3;
int y = ++x; // y is 4
int x = 3;
int y = x++; // y is 3
とあり、てっきりyに対する計算をしているものだと思っていました。
なので前置は単純に y=1+xで4 なのだと思い、後置は y=xで3 だけど足された1はどこに?と不思議に思っていました。
まさかxそのものの値が変わってしまうとは思わなかったです。
算数的考えから抜け出すのは難しいものですね。
もう一度学習し直してきたいと思います。ありがとう御座いました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/13 11:33