2021年12月19日
川俣晶の縁側ソフトウェアnew_C#入門・全キーワード明快解説! total 484 count

*= /= %= += -= <<= >>= &= ^= |= : 複合代入で文字数節約

Written By: 川俣 晶連絡先

この章のテーマ §

 複合代入について学びます。複合代入は、加算などの計算で同じ機能をもっと少ない文字数で記述できる機能です。

前提知識 §

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);

  1. 両方とも同じで実行できるよ
  2. a += 1;はエラーだよ
  3. a = a + 1;はエラーだよ
  4. 両方ともエラーだよ

[[解答]]

単行本情報