この章のテーマ §
複合代入について学びます。複合代入は、加算などの計算で同じ機能をもっと少ない文字数で記述できる機能です。
前提知識 §
Console.WriteLineメソッド, 文字列の基礎, 変数の基礎, int型, +などの演算子
解説 §
複合代入は、代入と+やーなどの算術演算を一体になって行う機能です。
たとえば、x = x + yという式があるとき、これはx += yと書き換えることができます。
使用できる演算子には、+の他に、* / % - << >> & ^ |があります。
罠の数々 §
- 書き換えた結果は100%同じはないことに注意。x + yのような式の型は最低でもint型の幅に拡大されてしまうからである
- 割と利用例は多いので、知っておくとサンプルソースを読むときに役立つ
参考リンク §
代入演算子 (C# リファレンス)
サンプルソース: compoundAssignment §
int a = 1;
int b = 2;
a = a + b;
Console.WriteLine($"a={a}");
int c = 1;
int d = 2;
c += d;
Console.WriteLine($"c={c}");
実行結果 §
a=3
c=3
リポジトリ §
https://github.com/autumn009/CSharpPrimer2
練習問題 §
以下のプログラムで、a += 1;とa = a + 1;は完全に同じだろうか。何が違うのだろうか。
byte a = 1;
a += 1;
a = a + 1;
Console.WriteLine(a);
- 両方とも同じで実行できるよ
- a += 1;はエラーだよ
- a = a + 1;はエラーだよ
- 両方ともエラーだよ
[[解答]]