5.7 삼항 연산자 (Ternary Operator)
if-else 문을 단 한 줄로 줄여 쓸 수 있는 마법 같은 연산자입니다. 🪄
항(피연산자)이 3개라서 삼항 연산자라고 부릅니다.
1. 구조 및 문법 📐
1) 공식
(조건) ? 참일_때_값 : 거짓일_때_값
- 물음표(
?): “이 조건이 참이니?” 라고 물어보는 것과 같습니다. - 콜론(
:): “아니면 이거!” 라고 대안을 제시하는 것과 같습니다.
2) 비유: “양자택일 표지판”
- 갈림길에서 표지판을 만났습니다.
- “오른쪽으로 가면(참) 보물, 왼쪽으로 가면(거짓) 꽝”
3) 흐름 시각화
graph TD
Cond{점수가 90점 이상?}
Cond -->|Yes| True[참: 'A']
Cond -->|No| False[거짓: 'B']
True --> Result((결과))
False --> Result
style Cond fill:#ff9,stroke:#333
style True fill:#bfb,stroke:#333
style False fill:#fbb,stroke:#333
2. 코드 비교: if문 vs 삼항 연산자 ⚖️
점수에 따라 학점을 주는 코드를 비교해 봅시다.
1) if-else 문 (5줄)
int score = 85;
char grade;
if (score >= 90) {
grade = 'A';
} else {
grade = 'B';
}
2) 삼항 연산자 (1줄)
int score = 85;
char grade = (score >= 90) ? 'A' : 'B';
3. 주의사항 ⚠️
코드가 짧아진다고 무조건 좋은 것은 아닙니다. 삼항 연산자를 너무 많이 중첩해서 쓰면 가독성이 떨어져서 스파게티 코드가 될 수 있습니다.
// (X) 나쁜 예: 중첩 사용 (읽기 힘듦)
String result = (score > 90) ? "A" : ((score > 80) ? "B" : "C");
// (O) 좋은 예: 이럴 땐 그냥 if-else if 문을 쓰세요.
서브목차