C# 삼항 연산자: 조건부 표현식을 간결하게 작성하는 법
C# 삼항 연산자 (Ternary Operator)
간단한 if…else 문을 한 줄로 대체하는 C# 삼항 연산자를 마스터하세요.
삼항 연산자는 단순한 if…else 문을 간결하게 대체합니다. 처음이라면 C#의 if…else 문법을 먼저 복습하세요.
문법
Condition ? Expression1 : Expression2;
동작 원리
Condition이 true면 Expression1 반환.
Condition이 false면 Expression2 반환.
예시: 여러 줄 if-else를 한 줄로
if (number % 2 == 0) {
isEven = true;
} else {
isEven = false;
}
다음을 한 줄로:
isEven = (number % 2 == 0) ? true : false;
왜 '삼항(Ternary)'인가?
세 개의 피연산자(조건, 참 분기, 거짓 분기)를 다루기 때문입니다.
예제 1: 기본 사용법
using System;
namespace Conditional {
class Ternary {
public static void Main(string[] args) {
int number = 2;
bool isEven;
isEven = (number % 2 == 0) ? true : false;
Console.WriteLine(isEven);
}
}
}
출력:
True
number가 2이므로 조건이 true, isEven = true. 삼항 연산자는 문자열, 숫자, 문자 등 다양한 타입을 반환할 수 있어 다용도입니다.
결과를 직접 출력도 가능:
Console.WriteLine((number % 2 == 0) ? true : false);
삼항 연산자 사용 시점
삼항 연산자는 짧고 명확한 조건에 적합합니다. 남용하면 가독성이 떨어지며, 특히 중첩 시 심각합니다.
예를 들어 if…else if 체인을 한 줄로 압축:
if (a > b) {
result = "a is greater than b";
} else if (a < b) {
result = "b is greater than a";
} else {
result = "a is equal to b";
}
다음과 같이 한 줄로:
result = a > b ? "a is greater than b" : a < b ? "b is greater than a" : "a is equal to b";
코드는 짧아지지만 중첩 삼항은 읽기 어렵습니다. 단순한 조건에만 제한적으로 사용하고, 복잡한 로직은 명시적 if 블록으로 유지하세요.