C#의 삼항 연산자(Ternary Operator)는 조건 연산자(Conditional Operator)라고도 불리며, 세 개의 피연산자를 받아 불리언(Boolean) 표현식을 평가한 뒤 그 결과에 따라 두 값 중 하나를 반환하는 연산자입니다. 간단한 조건 분기를 if-else 문보다 짧고 깔끔하게 작성할 수 있어 코드의 가독성을 높이는 데 유용합니다.
삼항 연산자의 기본 구조
삼항 연산자는 다음과 같은 형태로 작성합니다.
b = (a == 1) ? 20 : 30;
동작 방식은 다음과 같습니다.
- 첫 번째 피연산자인 조건식이 true(참)로 평가되면, 두 번째 피연산자인
20이 반환됩니다. - 조건식이 false(거짓)로 평가되면, 세 번째 피연산자인
30이 반환됩니다.
삼항 연산자 사용 예제
아래 예제에서는 변수 a의 값에 따라 삼항 연산자가 어떻게 동작하는지 확인할 수 있습니다.
using System;
namespace DEMO {
class Program {
static void Main(string[] args) {
int a, b;
a = 10;
b = (a == 1) ? 20 : 30;
Console.WriteLine("Value of b is {0}", b);
b = (a == 10) ? 20 : 30;
Console.WriteLine("Value of b is {0}", b);
Console.ReadLine();
}
}
}실행 결과
Value of b is 30 Value of b is 20
결과 해석
- 첫 번째 실행에서
a는10이므로(a == 1)은 false입니다. 따라서 세 번째 값인30이b에 대입되어 "Value of b is 30"이 출력됩니다. - 두 번째 실행에서
(a == 10)은 true입니다. 따라서 두 번째 값인20이b에 대입되어 "Value of b is 20"이 출력됩니다.
삼항 연산자 활용 시 주의사항
삼항 연산자는 간단한 조건 분기에 적합하지만, 여러 조건을 중첩하면 오히려 가독성이 떨어질 수 있습니다. 복잡한 로직에는 일반적인 if-else 문을 사용하고, 단순히 두 값 중 하나를 선택하는 경우에만 삼항 연산자를 사용하는 것이 좋습니다. 또한 삼항 연산자는 식(expression)이므로 메서드 호출 결과나 문자열 보간 등 다양한 곳에서 값으로 바로 활용할 수 있다는 장점도 있습니다.