- ベストアンサー
インクリメント演算子について
i = 1の場合 i++は変数iの値を返してから、1加算する ++iは変数iに1を加算し、その値を返す この「返す」とはどういう意味ですか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
i = 1 a = i++; // aにiの値を代入、その後iの値を増分する。 ↑ a = i; i = i + 1; a = ++i; // iの値を増分、その後aにiの値を代入する。 ↑ i = i + 1; a = i; これで理解できますか?
その他の回答 (2)
- osumitan
- ベストアンサー率33% (102/307)
回答No.3
Javaでは、式は値を持つ、という考え方があるので、 (voidメソッドを呼んだときの戻り値など、"値がない"のも値の一種だとして) その式の値を受け取ったとき(No.2の方の例でいう変数a)、 受け取った側から見て、右辺の式が「値を返した」ということだと思います。 i++も、++iも、iに1を加算するという処理をする点では同じだけど、 その式の値は、一方は加算前の値、他方は加算後の値、という違いがあるわけですね。
質問者
お礼
難しいですが理解できるように頑張ります。
- php504
- ベストアンサー率42% (926/2160)
回答No.1
i = 1 a = i++ a = ++i で aが1になるか2になるかということです
質問者
補足
a=i++は返してから1加算すると1になり、 a=++iは加算してから返すと2になる。 何故そうなるのか返すの意味が解りません。
お礼
教科書にもない増分という言葉がでてきました。 まだまだ私にはJavaは理解し難いものですが、 何とか一回目の月間テストは提出できました。 理解できるように頑張ります。