C#에서 할당 연산자(assignment operator)는 변수에 값을 대입하는 데 사용되는 연산자입니다. 단순히 값을 저장하는 기본 연산자뿐만 아니라, 산술 연산이나 비트 연산과 결합된 복합 할당 연산자도 함께 제공되어 코드를 더 간결하고 읽기 쉽게 작성할 수 있습니다.
C#의 주요 할당 연산자
다음 표는 C#에서 사용할 수 있는 다양한 할당 연산자와 그 동작 방식을 정리한 것입니다.
| 연산자 | 설명 | 예시 |
|---|---|---|
| = | 단순 할당 연산자. 오른쪽 피연산자의 값을 왼쪽 피연산자에 대입합니다. | C = A + B → A + B의 결과값을 C에 대입 |
| += | 덧셈 후 할당 연산자. 오른쪽 피연산자를 왼쪽 피연산자에 더한 결과를 왼쪽에 대입합니다. | C += A 는 C = C + A 와 동일 |
| -= | 뺄셈 후 할당 연산자. 왼쪽 피연산자에서 오른쪽 피연산자를 뺀 결과를 왼쪽에 대입합니다. | C -= A 는 C = C - A 와 동일 |
| *= | 곱셈 후 할당 연산자. 두 피연산자를 곱한 결과를 왼쪽 피연산자에 대입합니다. | C *= A 는 C = C * A 와 동일 |
| /= | 나눗셈 후 할당 연산자. 왼쪽 피연산자를 오른쪽 피연산자로 나눈 결과를 왼쪽에 대입합니다. | C /= A 는 C = C / A 와 동일 |
| %= | 나머지(모듈러스) 후 할당 연산자. 두 피연산자를 나눈 나머지를 왼쪽 피연산자에 대입합니다. | C %= A 는 C = C % A 와 동일 |
| <<= | 왼쪽 시프트 후 할당 연산자. 비트를 지정한 횟수만큼 왼쪽으로 이동한 결과를 대입합니다. | C <<= 2 는 C = C << 2 와 동일 |
| >>= | 오른쪽 시프트 후 할당 연산자. 비트를 지정한 횟수만큼 오른쪽으로 이동한 결과를 대입합니다. | C >>= 2 는 C = C >> 2 와 동일 |
| &= | 비트 AND 후 할당 연산자. 두 피연산자의 비트 AND 결과를 대입합니다. | C &= 2 는 C = C & 2 와 동일 |
| ^= | 비트 배타적 OR(XOR) 후 할당 연산자. 두 피연산자의 XOR 결과를 대입합니다. | C ^= 2 는 C = C ^ 2 와 동일 |
| |= | 비트 포함 OR 후 할당 연산자. 두 피연산자의 OR 결과를 대입합니다. | C |= 2 는 C = C | 2 와 동일 |
할당 연산자 사용 예제
아래 예제는 C#에서 다양한 할당 연산자를 실제로 사용하는 과정을 보여줍니다.
using System;
namespace OperatorsAppl {
class Program {
static void Main(string[] args) {
int a = 21;
int c;
// 단순 할당 연산자
c = a;
Console.WriteLine("Assignment Operator: {0}", c);
// 덧셈 후 할당
c += a;
Console.WriteLine("+= Value: {0}", c);
// 뺄셈 후 할당
c -= a;
Console.WriteLine("-= Value: {0}", c);
// 곱셈 후 할당
c *= a;
Console.WriteLine("*= Value: {0}", c);
// 나눗셈 후 할당
c /= a;
Console.WriteLine("/= Value: {0}", c);
// 나머지 후 할당
c = 200;
c %= a;
Console.WriteLine("%= Value: {0}", c);
// 왼쪽 시프트 후 할당
c <<= 2;
Console.WriteLine("<<= Value: {0}", c);
Console.ReadLine();
}
}
}실행 결과
Assignment Operator: 21 += Value: 42 -= Value: 21 *= Value: 441 /= Value: 21 %= Value: 11 <<= Value: 44
동작 원리 살펴보기
위 예제의 실행 흐름을 단계별로 살펴보면 다음과 같습니다.
- c = a : 변수 a의 값 21이 c에 그대로 대입됩니다.
- c += a : 21 + 21 = 42가 c에 저장됩니다.
- c -= a : 42 - 21 = 21이 되어 다시 c에 저장됩니다.
- c *= a : 21 × 21 = 441이 c에 대입됩니다.
- c /= a : 441 ÷ 21 = 21이 됩니다.
- c %= a : c를 200으로 초기화한 뒤, 200 % 21 = 11이 c에 저장됩니다.
- c <<= 2 : 11을 왼쪽으로 2비트 시프트하면 44가 됩니다.
마무리
복합 할당 연산자를 활용하면 같은 변수를 반복해서 참조하는 번거로움을 줄이고 코드 길이를 크게 단축할 수 있습니다. 특히 누적 합계 계산, 카운터 증감, 비트 플래그 처리 등에서 자주 사용되므로 각 연산자의 의미를 정확히 이해해 두는 것이 좋습니다.