C#에서 변수 값을 1씩 늘리거나 줄일 때 사용하는 것이 바로 증가 연산자(++)와 감소 연산자(--)입니다. 이 연산자들은 각각 전위(Prefix) 방식과 후위(Postfix) 방식으로 나뉘며, 두 방식은 연산이 적용되는 시점에서 중요한 차이를 보입니다.
증가 연산자(Increment Operator)
증가 연산자는 변수의 값을 1만큼 올릴 때 사용합니다. 전위 증가(++a)는 값을 먼저 증가시킨 후 결과를 반환하고, 후위 증가(a++)는 현재 값을 먼저 반환한 뒤에 값을 증가시킵니다.
다음 예제를 통해 두 방식의 차이를 확인해 보겠습니다.
예제 코드
using System;
class Demo {
static void Main() {
int a = 250;
Console.WriteLine(a); // 출력: 250
a++; // 후위 증가
Console.WriteLine(a); // 출력: 251
++a; // 전위 증가
Console.WriteLine(a); // 출력: 252
int b = 0;
b = a++; // a의 값(252)을 b에 대입한 후 a 증가
Console.WriteLine(b); // 출력: 252
Console.WriteLine(a); // 출력: 253
b = ++a; // a를 먼저 증가(254)시킨 후 b에 대입
Console.WriteLine(b); // 출력: 254
Console.WriteLine(a); // 출력: 254
}
}실행 결과
250 251 252 252 253 254 254
b = a++의 경우 증가하기 전의 값이 b에 대입되고, b = ++a의 경우 증가한 후의 값이 b에 대입되는 점에 주목하세요.
감소 연산자(Decrement Operator)
감소 연산자는 변수의 값을 1만큼 줄일 때 사용합니다. 마찬가지로 전위 감소(--a)와 후위 감소(a--) 두 가지 방식이 있으며, 동작 원리는 증가 연산자와 동일합니다.
예제 코드
using System;
class Demo {
static void Main() {
int a = 250;
Console.WriteLine(a); // 출력: 250
a--; // 후위 감소
Console.WriteLine(a); // 출력: 249
--a; // 전위 감소
Console.WriteLine(a); // 출력: 248
int b = 0;
b = a--; // a의 값(248)을 b에 대입한 후 a 감소
Console.WriteLine(b); // 출력: 248
Console.WriteLine(a); // 출력: 247
b = --a; // a를 먼저 감소(246)시킨 후 b에 대입
Console.WriteLine(b); // 출력: 246
Console.WriteLine(a); // 출력: 246
}
}실행 결과
250 249 248 248 247 246 246
정리
- 전위(++a / --a): 값을 먼저 변경한 뒤 그 값을 사용합니다.
- 후위(a++ / a--): 현재 값을 먼저 사용한 뒤 값을 변경합니다.
- 단독으로 사용할 때는 결과가 같지만, 다른 변수에 대입하거나 표현식 내에서 사용할 때 차이가 발생합니다.
증가·감소 연산자는 반복문에서 카운터를 조작할 때 특히 자주 사용되므로, 전위와 후위의 동작 차이를 정확히 이해해 두는 것이 좋습니다.