C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#の複合代入演算子とは?種類と使い方をわかりやすく解説

複合代入演算子(Compound Assignment Operator)は、演算結果を変数に代入するまでの処理を、より短い構文で記述できる演算子です。まず2つのオペランドに対して演算が行われ、その結果が最初のオペランドに代入されます。

たとえば val += 3val = val + 3 と同じ意味になり、コードが簡潔で読みやすくなるのが特徴です。C#では以下のような複合代入演算子が用意されています。

C#の複合代入演算子一覧

No.演算子と名称
1+=
加算代入(Addition Assignment)
2-=
減算代入(Subtraction Assignment)
3*=
乗算代入(Multiplication Assignment)
4/=
除算代入(Division Assignment)
5%=
剰余代入(Modulo Assignment)
6&=
ビットごとのAND代入(Bitwise AND Assignment)
7|=
ビットごとのOR代入(Bitwise OR Assignment)
8^=
ビットごとのXOR代入(Bitwise XOR Assignment)
9<<=
左シフト代入(Left Shift Assignment)
10>>=
右シフト代入(Right Shift Assignment)
11=>
ラムダ演算子(Lambda Operator)

それでは、C#における複合代入演算子の実際の使い方を、サンプルコードで確認してみましょう。

サンプルコード

using System;
namespace Program {
    class MyClass {
        public static void Main(string[] args) {
            int val = 7;
            val += 3;
            Console.WriteLine("加算代入: " + val);
            val -= 2;
            Console.WriteLine("減算代入: " + val);
            val *= 7;
            Console.WriteLine("乗算代入: " + val);
            val /= 7;
            Console.WriteLine("除算代入: " + val);
            val %= 5;
            Console.WriteLine("剰余代入: " + val);
            val &= 9;
            Console.WriteLine("ビットごとのAND代入: " + val);
            val <<= 3;
            Console.WriteLine("左シフト代入: " + val);
            val >>= 5;
            Console.WriteLine("右シフト代入: " + val);
        }
    }
}

実行結果

加算代入: 10
減算代入: 8
乗算代入: 56
除算代入: 8
剰余代入: 3
ビットごとのAND代入: 1
左シフト代入: 8
右シフト代入: 0

処理内容のポイント

  • 加算代入(+=):初期値7に3を加えて10になります。
  • 減算代入(-=):10から2を引いて8になります。
  • 乗算代入(*=):8に7を掛けて56になります。
  • 除算代入(/=):56を7で割って8になります。
  • 剰余代入(%=):8を5で割った余りの3になります。
  • AND代入(&=):3と9のビットごとのAND演算で1になります。
  • 左シフト代入(<<=):1を3ビット左にシフトして8になります。
  • 右シフト代入(>>=):8を5ビット右にシフトして0になります。

このように、複合代入演算子を使うことで「演算」と「代入」を1文でまとめて書けるため、コードの可読性が向上します。特にカウンタの増減や累積計算など、頻繁に使われる処理では積極的に活用するとよいでしょう。

  1. Kubernetes Operator(オペレーター)とは?仕組みと活用メリットを解説

    Kubernetes Operator(オペレーター)とはKubernetes Operatorは、Kubernetesの機能を拡張し、より複雑なステートフルなワークロードの管理を可能にするアプリケーションデプロイメントの手法です。対象となるワークロードには、データベース、クォーラム(合意形成)メカニズムを利用する分散システム、一度に再構成することが難しいアプリケーションなどが含まれます。さらに、ステートレスなワークロードに対しても、Operatorを活用することで、Kubernetes上における「アプリケーション」の一貫した定義を作り出すことができます。これらを実現するために、Kuberne

  2. JavaScriptの分割代入(Destructuring Assignment)とは?オブジェクトと配列から値を取り出す方法

    分割代入(Destructuring Assignment)とは分割代入(Destructuring Assignment)は、ES6(ECMAScript 2015)で導入されたJavaScriptの特殊な構文です。オブジェクトのプロパティや配列の要素を分解し、それぞれを個別の変数に代入することができます。従来の方法では、オブジェクトや配列から値を取り出す際に、プロパティ名やインデックスを一つずつ指定する必要がありました。分割代入を使えば、こうした操作をより簡潔で読みやすいコードで記述できます。分割代入の主なメリットコードの簡潔化: 複数の変数への代入を1行でまとめて記述できます可読性の向上