L'operatore ternario è un'alternativa leggera e compatta alle semplici istruzioni if/else.
Di solito si usa nelle istruzioni di return (ma non solo): basta una sola riga per prendere la decisione, restituendo il valore di sinistra se l'espressione è true e il valore di destra se è false, come segue:
boolean expr = 0 != 200;
// Ternary statement
int value = expr ? 22 : 33;
// => 22
Molte espressioni if/else semplici possono essere semplificate usando gli operatori ternari.
In questo esercizio, implementerai le regole per calcolare lo stipendio totale di un dipendente in un mese. L'International Siderurgy Company (ISC) ha bisogno di aiuto per calcolare gli stipendi dei dipendenti, tenendo conto dei vari fattori che possono influire sulla retribuzione finale.
Hai tre attività e per implementarle dovresti usare l'operatore ternario invece delle istruzioni if/else.
Implementa il metodo salaryMultiplier, che restituisce il moltiplicatore dello stipendio in base al numero di giorni in cui un dipendente ha saltato il lavoro.
Applica una penalità del 15% se il dipendente ha saltato almeno cinque giorni.
int daysSkipped = 3;
salaryMultiplier(daysSkipped);
// => 1.0
daysSkipped = 7;
salaryMultiplier(daysSkipped);
// => 0.85
Implementa i metodi bonusMultiplier e bonusForProductsSold.
L'ISC paga dieci unità monetarie per ogni prodotto venduto e, se un dipendente vende venti prodotti o più, il moltiplicatore sale a tredici.
bonusMultiplier dovrebbe determinare quale moltiplicatore applicare, mentre bonusForProductSold dovrebbe restituire il bonus totale in unità monetarie.
int productsSold = 21;
bonusMultiplier(productsSold);
// => 13
bonusForProductsSold(productsSold);
// => 273
productsSold = 5;
bonusMultiplier(productsSold);
// => 10
bonusForProductsSold(productsSold);
// => 50
Implementa il metodo finalSalary.
Dovrebbe moltiplicare lo stipendio base di 1000.00 per il moltiplicatore dello stipendio, aggiungere il bonus e restituire il risultato.
Tuttavia, gli stipendi devono essere limitati a 2000.00.
int daysSkipped = 2;
int productsSold = 3;
finalSalary(daysSkipped, productsSold);
// => 1030.00
productsSold = 90;
finalSalary(daysSkipped, productsSold);
// => 2000.00
Iscriviti a Exercism per imparare e padroneggiare Java con 26 concetti158 esercizi e il mentoring di persone reali, tutto gratis.