Ο τριαδικός τελεστής είναι μια ελαφριά, συμπαγής εναλλακτική για απλές εντολές 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, η οποία επιστρέφει τον πολλαπλασιαστή μισθού με βάση τον αριθμό των ημερών που ένας υπάλληλος απουσίασε από τη δουλειά.
Εφάρμοσε ποινή 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 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.