インクリメントとデクリメント
回数を数える時などは、その回数を記録する為の変数を用意します。これをカウンタと言いますが、このカウンタの値をカウントアップ(1つ値を増やす)する場合やカウントダウン(1つ値を減らす)する場合専用の処理として、「インクリメント」と「デクリメント」があります。
今回はインクリメントとデクリメントの使い方を説明します。
インクリメントとデクリメント 目次
1.インクリメントとは
インクリメント(Increment)とは、変数の値を現在の値から1増やす処理のことです。1増やすというからにはintやdoubleなどの数値型でしかインクリメントはできません。
インクリメント演算子という演算子が用意されていますので、次の様に使用します。
変数++
変数の後ろに「++」プラス記号を2回続けて書くとインクリメント演算子になります。
package pac01; public class HelloWorld { public static void main(String[] args) { int intHensu1 = 0; // intHensu1をインクリメント intHensu1++; System.out.println(intHensu1); } } -------------------------------------------------------------------- 1
8行目のところで、0で初期化されていたintHensu1の値が1増えています。10行目に変数の値を出力することで確認できます。
ちなみに、この「++」は3つ以上書いたらエラーになりますし、1つだけでもエラーになります。
2.デクリメント
デクリメント(Decrement)とは、インクリメントの逆で、変数の値を現在の値から1減らす処理のことです。こちらも同じくintやdoubleなどの数値型でしかデクリメントはできません。
インクリメントと同様に、デクリメント演算子という演算子が用意されていますので、次の様に使用します。
変数–
※表示がおかしくなりますが半角のマイナス記号を2つ書いています
変数の後ろに「–」マイナス記号を2回続けて書くとデクリメント演算子になります。
package pac01; public class HelloWorld { public static void main(String[] args) { int intHensu1 = 0; // intHensu1をデクリメント intHensu1--; System.out.println(intHensu1); } } -------------------------------------------------------------------- -1
8行目のところで、0で初期化されていたintHensu1の値が1減っています。10行目に変数の値を出力することで確認できます。
なお、この「–」に関しても3つ以上書いたらエラーになりますし、1つだけでもエラーになります。
3.前置と後置
インクリメント演算子とデクリメント演算子は、これまでは変数の後ろに書いていましたが、これを「後置」と言います。反対に変数の前に書くこともでき、これを「前置」と言います。
■前置 ++変数 または –変数
■後置 変数++ または 変数–
この2つは、書き方だけの話ではなく、全く意味が変わってきます。
- 前置 ・・・ 計算に使用する前に変数の値を増減する
- 後置 ・・・ 計算に使用した後に変数の値を増減する
これはどういうことかと言うと、実際に動かしてみた方が分かりやすいかもしれません。次のコードを見てください。
package pac01; public class HelloWorld { public static void main(String[] args) { int intHensu1 = 0; int intOutPut1 = 0; int intHensu2 = 0; int intOutPut2 = 0; // 前置インクリメント intOutPut1 = ++intHensu1; // 後置インクリメント intOutPut2 = intHensu2++; System.out.println(intOutPut1); System.out.println(intOutPut2); } } -------------------------------------------------------------------- 1 0
前置の方は[1]が、後置の方は[0]が変数に格納されていることが分かります。前置は計算に使用する前に変数の値を増減しているので、値をインクリメントしてから代入しています。後置は、代入してからインクリメントしているので、0が出力されていることになります。intHensu1とintHensu2はどちらも1が格納されています。
最近のコメント