O operador ternário é uma alternativa leve e compacta às condicionais if/else simples.
Normalmente usado em instruções de retorno (mas não só), basta-lhe uma única linha para tomar a decisão: devolve o valor da esquerda se a expressão for true e o valor da direita se for false, como se segue:
boolean expr = 0 != 200;
// Ternary statement
int value = expr ? 22 : 33;
// => 22
Muitas expressões if/else simples podem ser simplificadas com operadores ternários.
Neste exercício, vais implementar regras para calcular o salário total de um funcionário num mês. A International Siderurgy Company (ISC) precisa de ajuda para calcular os salários dos funcionários, tendo em conta vários fatores que podem influenciar o salário final.
Tens três tarefas e deves usar o operador ternário em vez de instruções if/else para as implementar.
Implementa o método salaryMultiplier, que devolve o multiplicador do salário com base no número de dias que um funcionário faltou ao trabalho.
Aplica uma penalização de 15% se o funcionário faltou pelo menos cinco dias.
int daysSkipped = 3;
salaryMultiplier(daysSkipped);
// => 1.0
daysSkipped = 7;
salaryMultiplier(daysSkipped);
// => 0.85
Implementa os métodos bonusMultiplier e bonusForProductsSold.
A ISC paga dez unidades monetárias por cada produto vendido e, se um funcionário vender vinte produtos ou mais, o multiplicador sobe para treze.
O bonusMultiplier deve determinar qual o multiplicador a aplicar, e o bonusForProductSold deve devolver o bónus total em unidades monetárias.
int productsSold = 21;
bonusMultiplier(productsSold);
// => 13
bonusForProductsSold(productsSold);
// => 273
productsSold = 5;
bonusMultiplier(productsSold);
// => 10
bonusForProductsSold(productsSold);
// => 50
Implementa o método finalSalary.
Deve multiplicar o salário base de 1000.00 pelo multiplicador do salário, somar o bónus e devolver o resultado.
No entanto, os salários devem ter um limite máximo de 2000.00.
int daysSkipped = 2;
int productsSold = 3;
finalSalary(daysSkipped, productsSold);
// => 1030.00
productsSold = 90;
finalSalary(daysSkipped, productsSold);
// => 2000.00
Inscreve-te no Exercism para aprenderes e dominares Java com 26 conceitos158 exercícios, e mentoria humana real, tudo grátis.