연산자(Operator)란 컴파일러에게 특정 수학적 또는 논리적 연산을 수행하도록 지시하는 기호를 말합니다. 그중에서도 할당 연산자(Assignment Operator)는 변수에 값을 저장하거나 계산된 결과를 대입할 때 사용하는 C#의 핵심 연산자입니다.
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 와 동일 |
| %= | 나머지(Modulus) 후 대입 연산자. 두 피연산자를 나눈 나머지를 왼쪽 피연산자에 대입합니다. | C %= A 는 C = C % A 와 동일 |
| <<= | 왼쪽 시프트 후 대입 연산자. | C <<= 2 는 C = C << 2 와 동일 |
| >>= | 오른쪽 시프트 후 대입 연산자. | C >>= 2 는 C = C >> 2 와 동일 |
| &= | 비트 AND 대입 연산자. | C &= 2 는 C = C & 2 와 동일 |
| ^= | 비트 XOR(배타적 OR) 대입 연산자. | C ^= 2 는 C = C ^ 2 와 동일 |
| |= | 비트 OR(포함적 OR) 대입 연산자. | C |= 2 는 C = C | 2 와 동일 |
예제 코드
다음 예제는 위에서 소개한 모든 할당 연산자를 실제로 사용하여 그 결과를 출력하는 프로그램입니다.
using System;
namespace Demo {
class Program {
static void Main(string[] args) {
int a = 21;
int c;
c = a;
Console.WriteLine("c의 값 = {0}", c);
c += a;
Console.WriteLine("c의 값 = {0}", c);
c -= a;
Console.WriteLine("c의 값 = {0}", c);
c *= a;
Console.WriteLine("c의 값 = {0}", c);
c /= a;
Console.WriteLine("c의 값 = {0}", c);
c = 200;
c %= a;
Console.WriteLine("c의 값 = {0}", c);
c <<= 2;
Console.WriteLine("c의 값 = {0}", c);
c >>= 2;
Console.WriteLine("c의 값 = {0}", c);
c &= 2;
Console.WriteLine("c의 값 = {0}", c);
c ^= 2;
Console.WriteLine("c의 값 = {0}", c);
c |= 2;
Console.WriteLine("c의 값 = {0}", c);
Console.ReadLine();
}
}
}
실행 결과
c의 값 = 21 c의 값 = 42 c의 값 = 21 c의 값 = 441 c의 값 = 21 c의 값 = 11 c의 값 = 44 c의 값 = 11 c의 값 = 2 c의 값 = 0 c의 값 = 2
결과 해석
a = 21일 때 각 연산이 순서대로 적용되면 다음과 같이 값이 변합니다.
c = a→ 21 (단순 대입)c += a→ 21 + 21 = 42c -= a→ 42 - 21 = 21c *= a→ 21 × 21 = 441c /= a→ 441 ÷ 21 = 21c = 200; c %= a→ 200 % 21 = 11 (나머지)c <<= 2→ 11을 왼쪽으로 2비트 시프트 = 44c >>= 2→ 44를 오른쪽으로 2비트 시프트 = 11c &= 2→ 11 AND 2 = 2c ^= 2→ 2 XOR 2 = 0c |= 2→ 0 OR 2 = 2
복합 할당 연산자를 활용하면 코드를 더 간결하고 읽기 쉽게 작성할 수 있으므로, 실무에서도 널리 사용됩니다.