2
respostas

Solução não atende um ponto específico do problemas

A solução abaixo não resolve o problema dos clientes com 5 mil milhas:

**let porcentagemDesconto = 0;

if(quantidadeMilhas >= 30000){
porcentagemDesconto = 20;
} else if(quantidadeMilhas > 5000){
porcentagemDesconto = 10;
}
**
De acordo com a regra de negócio:

Pessoas com uma quantidade de milhas inferior a 5.000 não recebem desconto.
Pessoas com uma quantidade de milhas igual ou superior a 30.000 recebem 20% de desconto.
Pessoas com uma quantidade de milhas superior a 5.000, mas inferior a 30.000, recebem 10% de desconto.
*
*Um dos problemas relatados na questão é: *

Mas, segundo relatos de clientes, ao tentar utilizar o desconto referente a 5.000 milhas, não ocorre nenhum desconto.

Dúvida:

O que acontece com os clientes que possuem exatamente 5 mil milhas? A instrução Else if não deveria ser:

else if(quantidadedeMilhas >= 5000?

2 respostas

Pelo texto que você mesmo citou (“superior a 5.000 e inferior a 30.000”), quem tem exatamente 5.000 milhas NÃO recebe desconto. Logo, o código com > 5000 está coerente com a regra.

Só mude para >= 5000 se a regra correta for “igual ou superior a 5.000”.

Se a regra diz ‘superior a 5.000’, então 5.000 não tem desconto e o > 5000 está correto. Só use >= 5000 se a regra for ‘igual ou superior a 5.000’. Em ambos os casos, mantenha também o >= 30000 para 20%.

Está com erro no texto de qualquer maneira.

"Pessoas com uma quantidade de milhas inferior a 5.000 não recebem desconto."

O texto em si não deixa claro para as pessoas que tem exatamente 5k milhas....Cita inferior a 5k e superior a 5k! Deveria citar igual ou inferior a 5k milhas, ou igual ou superior a 5k milhas, o que levaria ao erro para quem tem exatamente está pontuação, se o desconto for benéfico provavelmente ficaria em silêncio, mas se fosse lesada....Aguarde o processo!