【インクリメント・デクリメント】Javaのインクリメントとデクリメントについて現役エンジニアがわかりやすく解説

Java

Javaのプログラムで「i++」や「i–」というような書き方をしているコードを見たことはありませんか?
これはインクリメントやデクリメントと呼ばれるプログラムの書き方です。
今回の記事ではそんなインクリメントとデクリメントについて現役エンジニアが解説していきます。

インクリメント演算子とデクリメント演算子とは

インクリメント演算子とは対象の変数の値を1増やす演算子で、デクリメント演算子は対象の変数の値を1減らす演算子です。

インクリメント演算子

まずインクリメント演算子について解説します。
インクリメント演算子は対象の数値型の変数の値を1増やすことができる演算子です。
基本的な書き方は次のようになります。

変数名++;

もしくは

++変数名;

このような書き方をすることで変数の値を1増やすことができます。
二つの種類は書き方によって少し挙動に違いがあります。挙動の違いについては後ほど詳しく解説します。
実際のコードで確認してみましょう。

public class IncrementSample {

	/**
	 * インクリメントのサンプルコード
	 * @param args
	 */
	public static void main(String args[]) {
		int num = 17;
		num++;

		// 18が出力される
		System.out.println(num);
	}
}

実行結果

18

デクリメント演算子

次にデクリメント演算子について解説していきます。
デクリメント演算子はインクリメント演算子の反対で、対象の変数の数値を1減らすことができます。
基本的な書き方は次のようになります。

変数名--;

もしくは

--変数名;

上のような書き方をすることで、変数の値を1減らすことができます。
デクリメントもインクリメント同様2種類書き方があり、違いについては後ほど詳しく解説します。
ではこちらもサンプルのコードで確認してみましょう。

public class DecrementSample {
	/**
	 * デクリメントのサンプル
	 * @param args
	 */
	public static void main(String args[]) {
		int num = 17;
		num--;

		// 16が出力される
		System.out.println(num);
	}
}

実行結果

16

インクリメントとデクリメントのタイミング

インクリメントとデクリメントの基本について解説してきました。
ここらからインクリメントとデクリメントのタイミングについて解説していきます。

先ほどインクリメントとデクリメントには2種類の書き方があると解説しました。
具体的にはインクリメントは次のような2種類の書き方があります。

  • ++変数名;
  • 変数名++;

この「++変数名;」の方を前置インクリメントと言い、「変数名++;」の方を後置インクリメントと呼びます。
それぞれの違いについて解説していきます。

前置インクリメント

まず前置インクリメントについてです。
前置インクリメントは記述されている箇所の処理を行う前に1を追加します。

実際のコードで確認してみましょう。
次のコードではxに1を代入し、yにxをインクリメントした値を入れています。
前置インクリメントなので、xをyに代入する前にxを1追加しています。

public class PositionalDefference {

	public static void main(String args[]) {
		int x = 1;
		int y = ++x;
		// 2が出力される
		System.out.println(x);
		// 2が出力される
		System.out.println(y);
	}
}

実行結果

実行すると両方とも2が出力されます。

2
2

このように前置インクリメントでは処理の前に1値が追加されます。
よって前置インクリメントは次のような書き方と同じです。

x = x + 1;
y = x;

後置インクリメント

次に後置インクリメントについて説明します。
後置インクリメントは処理をした後に変数に1を追加します。

こちらも実際のコードで確認してみましょう。
次のコードではxに1を代入して、後置インクリメントでyに値を代入しています。
後置インクリメントのためyにxを代入した後にxに1追加されます。

public class PositionalDefference {

	public static void main(String args[]) {
		int x = 1;
		int y = x++;
		// 2が出力される
		System.out.println(x);
		// 1が出力される
		System.out.println(y);
	}
}

実行結果

実行するとyには1が入っていて、xは1が追加されて2が出力されます。

2
1

このように後置インクリメントでは処理をした後に1が追加されます。
よって後置インクリメントは次のような書き方と同じです。

y = x;
x = x + 1;

まとめ

まとめにいきます。
今回はJavaのインクリメントとデクリメントについて解説してきました。

インクリメントは変数に値を1追加する処理で、デクリメントは変数の値を1減らす処理です。
またインクリメントとデクリメントには前置インクリメントと後置インクリメントという2種類が存在します。
この2種類では値が変更されるタイミングが異なってくるので、自分が実現したい処理をするにはどちらの記述をするのか確かめて使用する必要があります。
また他の人が書いたコードでもどちらの記法なのかよく確認するようにしましょう!

最後まで読んでいただきありがとうございました。

タイトルとURLをコピーしました