インクリメントとデクリメント
回数を数える時などは、その回数を記録する為の変数を用意します。これをカウンタと言いますが、このカウンタの値をカウントアップ(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が格納されています。





最近のコメント