Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 복합 할당 연산자(Compound Assignment Operator) 총정리와 예제

복합 할당 연산자(compound assignment operator)는 연산 결과를 더 짧고 간결한 문법으로 변수에 저장할 수 있도록 해주는 연산자입니다. 먼저 두 피연산자 사이에서 연산이 수행된 뒤, 그 결과가 첫 번째 피연산자(변수)에 할당됩니다.

예를 들어 val += 3val = val + 3과 동일하게 동작하며, 코드를 읽기 쉽고 작성하기 편리하게 만들어 줍니다.

C#의 복합 할당 연산자 목록

번호연산자 및 이름
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

동작 과정 설명

위 예제의 실행 흐름을 단계별로 보면 다음과 같습니다.

  • val = 7: 초기값 설정
  • val += 3 → 7 + 3 = 10
  • val -= 2 → 10 - 2 = 8
  • val *= 7 → 8 × 7 = 56
  • val /= 7 → 56 ÷ 7 = 8
  • val %= 5 → 8을 5로 나눈 나머지 = 3
  • val &= 9 → 3(0011)과 9(1001)의 비트 AND = 1
  • val <<= 3 → 1을 3비트 왼쪽으로 이동 = 8
  • val >>= 5 → 8을 5비트 오른쪽으로 이동 = 0

이처럼 복합 할당 연산자를 활용하면 산술, 비트 연산 결과를 한 줄의 코드로 깔끔하게 처리할 수 있습니다.