Тернарний оператор дає легку, компактну альтернативу простим умовним конструкціям if/else. Зазвичай його використовують в інструкціях повернення (але не тільки в них); йому потрібен лише один рядок, щоб зробити вибір: повернути ліве значення, якщо вираз дорівнює true, і праве, якщо false, ось так:
boolean expr = 0 != 200;
// Ternary statement
int value = expr ? 22 : 33;
// => 22
Багато простих виразів if/else можна спростити за допомогою тернарних операторів.
У цій вправі ми реалізуємо правила обчислення загальної зарплати працівника за місяць. Міжнародна металургійна компанія (ISC) потребує допомоги в обчисленні зарплат працівників, з огляду на різні чинники, які можуть впливати на підсумкову зарплату.
У нас є три завдання, і для їх виконання ми маємо застосувати тернарний оператор, а не конструкції if/else.
Реалізуйте метод salaryMultiplier, який повертає множник зарплати залежно від кількості днів, які працівник пропустив.
Якщо працівник пропустив щонайменше пʼять днів, застосуйте 15% штраф.
int daysSkipped = 3;
salaryMultiplier(daysSkipped);
// => 1.0
daysSkipped = 7;
salaryMultiplier(daysSkipped);
// => 0.85
Реалізуйте методи bonusMultiplier і bonusForProductsSold.
ISC платить десять грошових одиниць за кожен проданий продукт, а якщо працівник продає двадцять продуктів або більше, множник зростає до тринадцяти.
Метод 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 вправ та справжнє наставництво від людей, і все це безкоштовно.