_삼항 연산자_는 _if-else_를 간결하게 줄인 버전이라고 생각할 수 있어요. 보통 return 문에서 사용하지만(return 문에만 국한되지는 않아요), 결정을 내리는 데 딱 한 줄이면 충분해요. 표현식이 true면 왼쪽 값을, false면 오른쪽 값을 반환해요.
많은 단순한 if/else 표현식은 _삼항 연산자_를 사용해 더 간단하게 만들 수 있어요.
// this ternary statement
return 5 > 4 ? true : false;
// is equivalent to this if/else
if ( 5 > 4 ) {
return true;
} else {
return false;
}
그럼 _if-else_와 삼항 연산자 중에서 어떻게 선택할까요? 간단한 상황, 즉 조건에 따라 값 하나만 반환하면 되고 추가 계산이 필요 없는 경우에는 _삼항 연산자_를 사용해요. 중첩된 조건이나 복잡한 표현식, 반환 값을 정하는 데 한 줄 이상이 필요한 경우처럼 그 외의 모든 상황에서는 _if-else_를 사용해요.
_삼항 연산자_를 중첩할 수는 있지만, 코드가 읽기 어려워지는 경우가 많아요.
이럴 때는 if 문을 중첩하는 편이 더 좋아요.
// hard to read
int value = expr1 ? expr2 && expr3 ? val1 : (val2 + val3) : expr4;
// easier to read
if (expr1){
if (expr2 && expr3){
return val1;
}
return val2 + val3;
}
return val4;
_삼항 연산자_와 if/else 문은 프로그래밍에서 같은 결과를 얻는 방법이 여러 가지라는 걸 잘 보여 주는 예예요.