🌟
【Java】インクリメントで a++と++aの違い。
はじめに
Javaの演算子でインクリメント・デクリメントを学習していると
++a
なのかa++
なのかで計算結果が異なるらしいが
混乱してしまったので一度整理しようと思いました。
この記事でわかること
- ++a と a++ の違い
インクリメント演算子とは
Integer型の 変数a に1
だけ増やしたい場合
算術演算子を使うと
int a = 10;
a = a+1;
代入演算子を使うと
a += 1;
と書く。
これをもっと楽に書く方法がインクリメント演算子で、
a++;
や
++a;
と書く。
a++と++aの違い
どちらも
a= a+1;
と同じなのだが、
a++; の場合
その時点では+1
を行なっておらず、
aを出力後に+1をするらしい。
++a; の場合
+1
を行なった後に
aを出力するらしい。
なので、
どちらも
a=a+1;
だが、
左辺を出力して右辺を処理するのがa++
右辺を処理して左辺へ代入後に左辺を出力するのが++a
と解釈した。
出力の違いはこちら
int a = 10;
System.out.println(a++); //出力結果は10
System.out.println(a); //出力結果は11
int a = 10;
System.out.println(++a); //出力結果は11
System.out.println(a); //出力結果は11
実際の計算
int a = 10;
int b = a++ + a + a-- - a-- + ++a + ++a + a;
//aの中身はこんな感じ
System.out.println( 10 + 11 + 11 - 10 + 10 + 11 + 11); //54
System.out.println(b); //54
参考(引用)文献
- スッキリわかるJava入門(第三版)
- JavaSilver SE11 問題集
Discussion