• ベストアンサー

インクリメント演算子について

i = 1の場合 i++は変数iの値を返してから、1加算する ++iは変数iに1を加算し、その値を返す この「返す」とはどういう意味ですか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

i = 1 a = i++; // aにiの値を代入、その後iの値を増分する。 ↑ a = i; i = i + 1; a = ++i; // iの値を増分、その後aにiの値を代入する。 ↑ i = i + 1; a = i; これで理解できますか?

noname#68601
質問者

お礼

教科書にもない増分という言葉がでてきました。 まだまだ私にはJavaは理解し難いものですが、 何とか一回目の月間テストは提出できました。 理解できるように頑張ります。

その他の回答 (2)

  • osumitan
  • ベストアンサー率33% (102/307)
回答No.3

Javaでは、式は値を持つ、という考え方があるので、 (voidメソッドを呼んだときの戻り値など、"値がない"のも値の一種だとして) その式の値を受け取ったとき(No.2の方の例でいう変数a)、 受け取った側から見て、右辺の式が「値を返した」ということだと思います。 i++も、++iも、iに1を加算するという処理をする点では同じだけど、 その式の値は、一方は加算前の値、他方は加算後の値、という違いがあるわけですね。

noname#68601
質問者

お礼

難しいですが理解できるように頑張ります。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

i = 1 a = i++ a = ++i で aが1になるか2になるかということです

noname#68601
質問者

補足

a=i++は返してから1加算すると1になり、 a=++iは加算してから返すと2になる。 何故そうなるのか返すの意味が解りません。

関連するQ&A

専門家に質問してみよう