Programming/Java

Java 삼항식, 삼항연산자(Conditional Operator) 사용하는 방법

Jan92 2021. 12. 2. 23:50

삼항연산자

 

삼항연산자는 전체 프로그래밍에서 언어를 불문하고 많이 사용되는 코드입니다.

프로그래밍을 하다 보면 if else 분기문을 사용하게 되는 경우가 많은데, 이때 단순한 if 문을 사용할 경우 if else 문을 대신하여 심플한 분기문을 만드는데 특화된 방식입니다.

 

// if else 문
int bigger;
if (num1 > num2) {
    bigger = num1;
} else {
    bigger = num2;
}

// 삼항연산자
int bigger = (num1 > num2) ? num1 : num2;

 

예를 들어 다음과 같이 두 수를 비교하는 간단한 if 문의 경우에 삼항연산자를 사용하게 되면 코드의 라인 수가 눈에 띄게 줄어들게 됩니다.

 

삼항연산자는 '(조건문) ? 참 : 거짓' 형식의 문법을 가지게 되는데요.

  • 앞에 있는 '조건문'은 True 혹은 False 값을 반환하는 조건식입니다. 
  • '?' 는 뒤에 오는 값이 조건문에 따른 리턴 값임을 알려주는 약속어입니다.
  • '참'은 조건문의 결과가 True일 때 반환될 값입니다.
  • ':' 는 True / False에 따른 반환 값을 구분하는 구분자입니다.
  • '거짓'은 조건문의 결과가 False 일 때 반환될 값입니다.

 

* 삼항연산자를 사용하게 되면 코드의 라인은 줄어들지만 그렇다고 컴파일 속도가 빨라지는 것은 알아두셔야 합니다.

 

 

 

int a = 11;
int b = 22;
int c = 33;

// 최댓값을 구하는 중첩 삼항자
int bigger = a > b ? (a > c ? a : c) : (b > c ? b : c);

// 최솟값을 구하는 중첩 삼항자
int smaller = a > b ? (b < c ? b : c) : (a < c? a : c);

 

삼항연산자는 이렇게 중첩해서 사용할 수도 있는데요.

중첩 삼항연산자는 보시는 것처럼 간단하게 a, b, c로 나타내도 가독성이 떨어지기 때문에 로직이 긴 경우 이렇게 중첩해서 사용한다면 if else 문을 사용하는 것에 비해 보기 안 좋은 코드가 될 수 있습니다.