J - 1.09.複合代入演算子
Editorial
/
/
Time Limit: 0 msec / Memory Limit: 0 KiB
キーポイント
x = x + yはx += yのように短く書けるx += 1はx++と書ける(インクリメント)x -= 1はx--と書ける(デクリメント)
複合代入演算子
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 + 1はx++または++xと書くことができます。このような「1増やす操作」をインクリメントと言います。
x = x - 1はx--または--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
このように、プログラムを短く書くための記法のことをシンタックスシュガーと言います。
問題
リンク先の問題を解いてください。