_삼항 연산자_는 단순한 _if/else_문을 위한 가볍고 간결한 대안이에요.
주로 반환문에서 쓰이지만 거기에만 제한되지는 않고, 결정을 내리는 데 딱 한 줄이면 충분해요.
표현식이 true면 왼쪽 값을, false면 오른쪽 값을 반환해요. 예를 들면 다음과 같아요:
boolean expr = 0 != 200;
// Ternary statement
int value = expr ? 22 : 33;
// => 22
많은 단순한 if/else 표현은 _삼항 연산자_를 사용해 간단하게 줄일 수 있어요.
이 연습 문제에서는 한 달 동안 직원의 총 급여를 계산하는 규칙을 구현해요. International Siderurgy Company (ISC)는 최종 임금에 영향을 줄 수 있는 여러 요인을 고려해 직원 급여를 계산하는 데 도움이 필요해요.
세 가지 과제가 있고, 이를 구현할 때는 if/else 문 대신 삼항 연산자를 사용해야 해요.
직원이 결근한 날짜 수에 따라 급여 배수를 반환하는 salaryMultiplier 메서드를 구현해요.
직원이 5일 이상 결근했다면 15%의 페널티를 적용해요.
int daysSkipped = 3;
salaryMultiplier(daysSkipped);
// => 1.0
daysSkipped = 7;
salaryMultiplier(daysSkipped);
// => 0.85
bonusMultiplier와 bonusForProductsSold 메서드를 구현해요.
ISC는 판매된 제품 하나당 10 화폐 단위를 지급하고, 직원이 제품을 20개 이상 판매하면 배수가 13으로 올라가요.
bonusMultiplier는 어떤 배수를 적용할지 결정하고, bonusForProductSold는 화폐 단위로 총 보너스를 반환해요.
int productsSold = 21;
bonusMultiplier(productsSold);
// => 13
bonusForProductsSold(productsSold);
// => 273
productsSold = 5;
bonusMultiplier(productsSold);
// => 10
bonusForProductsSold(productsSold);
// => 50
finalSalary 메서드를 구현해요.
기본급 1000.00에 급여 배수를 곱하고, 보너스를 더한 뒤, 그 결과를 반환해야 해요.
다만 급여는 2000.00을 넘을 수 없어요.
int daysSkipped = 2;
int productsSold = 3;
finalSalary(daysSkipped, productsSold);
// => 1030.00
productsSold = 90;
finalSalary(daysSkipped, productsSold);
// => 2000.00
Exercism에 가입하고 Java 트랙을 개념 26개연습 문제 158개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.