개요
C#에서 증가 연산자(++)는 정수 값을 1만큼 늘리고, 감소 연산자(--)는 정수 값을 1만큼 줄이는 단항 연산자입니다. 이 두 연산자는 반복문이나 카운터를 처리할 때 매우 자주 사용되며, 변수 앞에 붙느냐 뒤에 붙느냐에 따라 동작 순서가 달라진다는 점이 핵심입니다.
int a = 10; a++; // 후위 증가: a는 11이 됨 ++a; // 전위 증가: a는 12가 됨
int a = 20; a--; // 후위 감소: a는 19가 됨 --a; // 전위 감소: a는 18이 됨
전위 연산과 후위 연산의 차이
증가·감소 연산자는 위치에 따라 다음과 같이 동작합니다.
- 전위(Prefix) 방식 — ++a, --a: 값을 먼저 증가(또는 감소)시킨 후 그 결과를 반환합니다.
- 후위(Postfix) 방식 — a++, a--: 현재 값을 먼저 반환한 뒤에 값을 증가(또는 감소)시킵니다.
증가 연산자 예제
다음은 증가 연산자의 동작을 보여주는 C# 예제입니다.
using System;
class Program {
static void Main() {
int a, b;
a = 10;
Console.WriteLine(++a); // 전위 증가: 먼저 11로 증가 후 11 출력
Console.WriteLine(a++); // 후위 증가: 현재 값 11 출력 후 a는 12로 증가
b = a; // b에 12 대입
Console.WriteLine(a); // 12 출력
Console.WriteLine(b); // 12 출력
}
}
출력 결과
11 11 12 12
++a는 값을 먼저 1 증가시킨 뒤 출력하므로 11이 출력됩니다. 반면 a++는 현재 값인 11을 출력한 후에야 a가 12로 증가합니다. 따라서 마지막에 변수 a와 b는 모두 12를 갖게 됩니다.
감소 연산자 예제
다음은 감소 연산자의 동작을 확인할 수 있는 예제입니다.
int a, b; a = 10; // 감소 연산자 결과 출력 Console.WriteLine(--a); // 전위 감소: 먼저 9로 감소 후 9 출력 Console.WriteLine(a--); // 후위 감소: 현재 값 9 출력 후 a는 8로 감소 b = a; // b에 8 대입 Console.WriteLine(a); // 8 출력 Console.WriteLine(b); // 8 출력
정리
증가(++)와 감소(--) 연산자는 문법이 단순하지만, 전위와 후위 방식에 따라 값이 반환되는 시점이 달라집니다. 특히 다른 표현식 안에서 함께 사용할 경우 의도하지 않은 결과가 나올 수 있으므로, 두 방식의 동작 차이를 정확히 이해하고 사용하는 것이 좋습니다.