J - 1.09.複合代入演算子 Editorial /

Time Limit: 0 msec / Memory Limit: 0 KB

前のページ | 次のページ

キーポイント

  • x = x + yx += yのように短く書ける
  • x += 1x++と書ける(インクリメント
  • x -= 1x--と書ける(デクリメント

複合代入演算子

x = x + 1 のように、同じ変数名が2回現れる代入文では、複合代入演算子を使うとより短く書くことができます。

次のプログラムは、変数xに(1 + 2)を足して出力するだけのプログラムです。

#include <bits/stdc++.h>
using namespace std;

int main() {
  int x = 5;
  x += 1 + 2;
  cout << x << endl; // 8
}
実行結果
8
x += 1 + 2;

x = x + (1 + 2);

と同じ意味になります。

+=以外の複合代入演算子

他の算術演算子についても同様のことができます。

#include <bits/stdc++.h>
using namespace std;

int main() {
  int a = 5;
  a -= 2;
  cout << a << endl; // 3

  int b = 3;
  b *= 1 + 2;
  cout << b << endl; // 9

  int c = 4;
  c /= 2;
  cout << c << endl; // 2

  int d = 5;
  d %= 2;
  cout << d << endl; // 1
}

実行結果

3
9
2
1

インクリメントとデクリメント

x = x + 1x++または++xと書くことができます。このような「1増やす操作」をインクリメントと言います。

x = x - 1x--または--xと書くことができます。このような「1減らす操作」をデクリメントと言います。

#include <bits/stdc++.h>
using namespace std;

int main() {
  int x = 5;
  x++;
  cout << x << endl; // 6

  int y = 5;
  y--;
  cout << y << endl; // 4
}
実行結果
6
4

このように、プログラムを短く書くための記法のことをシンタックスシュガーと言います。


問題

リンク先の問題を解いてください。