C# 증감 연산자: 전위(Prefix) vs 후위(Postfix)
C#에서 증가 연산자(++)와 감소 연산자(--)는 변수 앞에 붙이느냐 뒤에 붙이느냐에 따라 동작 방식이 달라집니다. 이 두 가지 사용 방식을 각각 전위 연산자, 후위 연산자라고 부르며, 코드 실행 순서와 반환되는 값에 중요한 차이가 있습니다.
전위 연산자(Prefix Operator)란?
증가 연산자 ++를 변수 앞에 붙여 사용하면, 변수의 값이 먼저 1 증가한 후 그 값이 반환됩니다. 이를 전위 증가 연산자라고 합니다. 마찬가지로 전위 감소 연산자(--a)도 같은 방식으로 동작하며, 값을 먼저 1 감소시킨 뒤 반환합니다.
++a;
다음 예제는 전위 증가 연산자의 동작을 보여줍니다.
예제 코드
using System;
class Program {
static void Main() {
int a, b;
a = 50;
Console.WriteLine(++a);
b = a;
Console.WriteLine(a);
Console.WriteLine(b);
}
}실행 결과
51 51 51
Console.WriteLine(++a);가 실행되는 순간 a의 값이 먼저 51로 증가하고, 증가된 값이 출력됩니다. 따라서 이후 a와 b 모두 51을 가지게 됩니다.
후위 연산자(Postfix Operator)란?
증가 연산자 ++를 변수 뒤에 붙여 사용하면, 변수의 현재 값이 먼저 반환된 후 값이 1 증가합니다. 이를 후위 증가 연산자라고 합니다. 후위 감소 연산자(a--)도 같은 원리로 동작하며, 현재 값을 먼저 반환한 뒤 1 감소시킵니다.
a++;
다음 예제는 후위 연산자의 동작 방식을 보여줍니다.
예제 코드
using System;
class Program {
static void Main() {
int a, b;
a = 10;
Console.WriteLine(a++);
b = a;
Console.WriteLine(a);
Console.WriteLine(b);
}
}실행 결과
10 11 11
Console.WriteLine(a++);가 실행될 때는 증가하기 전의 값인 10이 먼저 출력되고, 그 후에 a의 값이 11로 증가합니다. 따라서 이후 a와 b는 모두 11을 가지게 됩니다.
핵심 정리
- 전위(++a): 값을 먼저 증가(또는 감소)시킨 후, 변경된 값을 반환합니다.
- 후위(a++): 현재 값을 먼저 반환한 후, 값을 증가(또는 감소)시킵니다.
즉, 단독으로 사용할 때는 결과가 같지만, 다른 표현식 내에서 사용할 때는 반환 시점의 차이 때문에 결과가 달라질 수 있으므로 주의해서 사용해야 합니다.