J - 1.09.複合代入演算子
Editorial
/
Time Limit: 0 msec / Memory Limit: 0 KB
キーポイント
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
このように、プログラムを短く書くための記法のことをシンタックスシュガーと言います。
問題
リンク先の問題を解いてください。