1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Javaのインクリメント・デクリメントについてまとめてみた

Posted at

Javaのインクリメントとデクリメントについて学習したのでまとめてみたいと思います。

Javaのインクリメントとデクリメントの書き方とそれぞれについて

処理内容 構文
インクリメント 一つ加算される 変数++、もしくは、++変数
デクリメント 一つ減産される 変数--、もしくは、--変数

インクリメントに関しては見たことがあると思います。

main.java
public class main {
    public static void main (String[] args) {
		for (int increment = 0; increment < 2; increment++){
			System.out.println("increment=" + increment);
		  }
    }
}

このようにJavaでfor文を使ったことがある人であれば、変数++でインクリメントしているところを見たことがあると思います。

ただ、インクリメントもデクリメントには、前置と後置のに種類があります。
それによって挙動がマジで変わるので覚えておきましょう。

前置?後置?何だそれ
ってなったあなた。

これから説明します。

インクリメントとデクリメントの前置と後置について

前置と後置の違いは値が足されるタイミングが違います。

後置と前置はそれ単体で使うときは同じ結果を返します。

int num = 5;

// 後置
num++;
num--;

// 前置
++num;
--num;

ただ、インクリメントした値を別の変数に格納したいときは前置と後置挙動が変わります。

これからそれについて紹介します。

例えば

main.java
public class main {
    public static void main (String[] args) {
		int x = 10;
        int y = x++;
		System.out.println(y);
    }
}

このように、変数xの値絵をインクリメントした値を変数yに代入したら変数yはどのように出力されるでしょう。

答えは

10

です。

なぜかというと、インクリメントされるのと変数に格納されるタイミングがあるからです。

今回の場合は、変数xがインクリメントされる前の値が変数yに代入されてから変数xの値がインクリメントされて変数xの値が更新されます。なので、インクリメントしても変数yの値が11にならないわけです。
では、変数yの値を11にするにはどうしたらいいでしょうか。
それは

main.java
public class main {
    public static void main (String[] args) {
		int x = 10;
        int y = ++x;
		System.out.println(y);
    }
}

このように、++x(後置)にすれば大丈夫です。
こうすることで、変数 x の値を 1 増やしたあとで増えたあとの値が変数 y に代入されます。

では、この声性質を応用して少し練習問題をしましょう。

main.java
public class main {
    public static void main (String[] args) {
		int x = 10;
        int y = x++ - x--;

		System.out.println(y);
    }
}

この場合h、変数yの値はどうなるでしょうか。

正解は

-1

です。

解説をしましょう。
最初のx++では、値は10です。しかし、それが- x--の段階になる時に、x++でインクリメントされた数が一時変数として残り、その値がx--に代入されるからです。
あれ、じゃあデクリメントされたx−−の値はどうなるんだよってなると思いますが、この場合はその値はこの先の四季で代入される値がないので、今回の場合は使われません。

ちなみに、x--を--xとした場合は値は

0

になります。
以上になります。
ありがとうございました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?