今回はJavaのインクリメント・デクリメント演算子について書いています。
インクリメント演算子とデクリメント演算子は下記のような演算子です。
・デクリメント演算子は変数の値を「1」減らしてくれる
前置きや後置きについても書いています。
インクリメント演算子
インクリメント演算子を使うと、変数の値を「1」足してくれます。
例えば、下記のように使うことができます。
int number = 1;
number++;
System.out.println(number); // 2
number
変数に「1」を代入しています。
その次の処理で、number
変数に対して「++
」をつけています。
これでnumber
変数の値を1つ増やしてくれます。
number
変数の内容を出力すると「2」となりました。
「1」足されて増えたことが確認できました。
インクリメントの前置きと後置き
先ほどのように、変数の後に「++
」を書くのが後置きです。
変数の前に「++
」を書くと、前置きになります。
前置きと後置きをしたときには、動作が変わってきます。
後置き
例えば、下記のように後置きします。
int number1 = 1;
int number2 = number1++;
System.out.println(number1); // 2
System.out.println(number2); // 1
number1
変数に「1」を代入しました。
その次の行で、number2
変数に代入していますが、number1
変数を後置きでインクリメントしています。
number2
変数には、number1
変数の値が入りますが、後置きしているので先に代入されます。
そのためnumber2
変数には「1」が代入されます。
そのあとに、number1
変数はインクリメントされて「2」になります。
このように後置きすると、変数が代入された後に、インクリメントされます。
前置き
前置きすると、先に足されて代入されます。
int number1 = 1;
int number2 = ++number1;
System.out.println(number1); // 2
System.out.println(number2); // 2
number1
変数に同様にして「1」を代入しています。
次の行で、number1
変数を前置きしてインクリメントして、number2
変数に代入しました。
このときには、1足されて、代入されるのでnumber2
変数は「2」になります。
number1
変数も足されたので「2」です。
for文で使うインクリメント
インクリメント演算子はfor文で使うことがよくあります。
例えば、下記のように使うことができます。
for (int i = 0; i < 5; i++) {
System.out.println("hello" + i);
}
for文の次の値の定義のところで、i++
としています。
こうすると、i
変数の値がループの終わりでカウントアップします。
このようにfor文で使われることがよくあります。
ちなみにこちらのプログラムを動かすと、変数i
が0から4までの間ループして下記のように出力されます。
hello0
hello1
hello2
hello3
hello4
デクリメント演算子
デクリメント演算子を使うことでも、変数の値を「1」減らしてくれます。
例えば、下記のように使うことができます。
int number = 1;
number--;
System.out.println(number); // 0
先ほどと同様にnumber
変数に「1」を代入しています。
その次の処理で、number
変数に対して「--
」をつけています。
これで、number
変数の値がひとつ減ります。
number
変数の内容を出力すると「0」になりました。
値がひとつ減ったことが確認できました。
デクリメントの前置きと後置き
デクリメント演算子の前置きと後置きも、インクリメント演算子と同じように動作します。
後置き
先ほどの後置きのインクリメント演算子をデクリメントに変えました。
int number1 = 1;
int number2 = number1--;
System.out.println(number1); // 0
System.out.println(number2); // 1
number1
変数に「1」を代入しています。
次の行で、number1
変数をデクリメントして、number2
変数に代入しています。
代入した後でデクリメントされるので、number2
変数の値は「1」で、number1
変数の値は「0」になります。
前置き
こちらも、先ほどの前置きのインクリメント演算子をデクリメントに変えました。
int number1 = 1;
int number2 = --number1;
System.out.println(number1); // 0
System.out.println(number2); // 0
number2
変数に代入するとことで、前置きでデクリメントしています。
そのため、デクリメントされた後の値が代入され、number2
変数の値は「0」で、number1
変数の値も「0」です。
このようにインクリメント演算子のときと同様にして、前置き・後置きが動作します。
インクリメント・デクリメント演算子まとめ
今回はJavaでインクリメント・デクリメント演算子の使い方や前置き・後置きについて見ていきました。
記事の内容をまとめると下記のようになります。
・–を使うことで、デクリメントできた
・インクリメント・デクリメント演算子は前置きと後置きがある
前置き・後置き
前置き・後置きについては、下記のとおりです。
前置き・後置き | 例 | 内容 |
---|---|---|
前置きインクリメント | ++number | 代入前に1つインクリメントされる。 |
後置きインクリメント | number++ | 代入後に1つインクリメントされる。 |
前置きデクリメント | –number | 代入前に1つデクリメントされる。 |
後置きデクリメント | number– | 代入後に1つデクリメントされる。 |
インクリメント・デクリメントは、基本的にはループのとこで使うことが主になるかと思います。
変数に代入するようなところで使うと、前述したように前置きや後置きによって、わかりにくいコードになるので気をつけましょう。
コメント