어제 오늘 내일

[Java] 삼항연산자, 중첩 삼항연산자 본문

IT/Java

[Java] 삼항연산자, 중첩 삼항연산자

hi.anna 2025. 12. 17. 07:05

Java에서 삼항연산자(ternary operator)는 조건식을 간단하게 표현할 수 있는 연산자로, if-else 문을 한 줄로 줄여주는 역할을 합니다. 코드가 간결해지고 가독성이 높아져 자주 활용되는 문법 중 하나입니다.

 

1. 삼항연산자의 기본 형태

삼항연산자의 구조는 다음과 같습니다:

조건식 ? 값1 : 값2

동작 방식

  • 조건식이 true → 값1 선택
  • 조건식이 false → 값2 선택

예:

int result = (10 > 5) ? 1 : 0; // result = 1

 

2. if-else를 대체하는 간단한 예

int age = 20;
String type = (age >= 18) ? "성인" : "미성년자";

설명

  • age가 18 이상이면 "성인" 선택
  • 그렇지 않으면 "미성년자" 선택

같은 로직을 if-else로 표현하면 다음과 같습니다:

String type;
if (age >= 18) {
    type = "성인";
} else {
    type = "미성년자";
}

삼항연산자를 사용하면 훨씬 간결하게 표현할 수 있습니다.

 

3. 중첩 삼항연산자

삼항연산자를 여러 번 이어서 사용할 수도 있습니다.

int score = 85;
String grade = (score >= 90) ? "A"
               : (score >= 80) ? "B"
               : "C";

설명

  • 조건을 순차적으로 검사해 등급을 문자열로 반환

주의

  • 너무 복잡하게 중첩하면 오히려 가독성이 떨어지므로 신중하게 사용해야 합니다.

 

4. 삼항연산자의 반환 타입 규칙

삼항연산자의 두 결과(값1, 값2)는 타입이 같거나 호환 가능해야 합니다.

Object obj = (true) ? "Hello" : 123; // OK, String과 Integer는 Object로 자동 승격

하지만 다음은 오류가 발생합니다:

int x = (true) ? 10 : "Hello"; // 오류

설명

  • int와 String은 호환되지 않기 때문

 

5. 삼항연산자 활용 팁

  • 단순한 조건 판단에는 매우 유용
  • 코드 길이가 줄어들어 가독성 향상
  • 복잡한 로직에서는 if-else가 더 명확할 수 있음
  • 중첩 사용은 최소화하는 것이 좋음

 

 

반응형
Comments