Antes vou mostrar todo o contexto do exercício para depois especificar onde está o erro!
Você é uma pessoa recém-chegada à equipe de desenvolvimento do Jornada Milhas, um site de compra de pacotes de viagens para os principais destinos do mundo.
Como primeira tarefa, sua liderança pediu para que você corrigisse um bug que tem acontecido quando uma pessoa cliente do site tenta utilizar suas milhas do cartão de crédito para obter desconto nos pacotes de viagem. Para isso, foi apresentado o seguinte código:
let porcentagemDesconto = 0;
if(quantidadeMilhas > 5000){
porcentagemDesconto = porcentagemDesconto + 10;
}
if(quantidadeMilhas >= 30000){
porcentagemDesconto = porcentagemDesconto + 20;
} else {
porcentagemDesconto = 0;
}
Para te ajudar a compreender a origem do bug, sua liderança explicou a regra de negócio utilizada para compras de pacotes de viagens com milhas:
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.
Mas, segundo relatos de clientes, ao tentar utilizar o desconto referente a 5.000 milhas, não ocorre nenhum desconto. Já clientes com mais de 30.000 milhas estão recebendo desconto excedente ao que deveriam receber.
Como você poderia modificar o código para que ele funcione corretamente? Selecione a opção correta:
O código de resposta que melhor atende a resolução do exercício é este:
Fazendo a utilização de um bloco if dentro do bloco else, como:
let porcentagemDesconto = 0;
if(quantidadeMilhas >= 30000){
porcentagemDesconto = 20;
} else if(quantidadeMilhas >= 5000){
porcentagemDesconto = 10;
}
Porém no exercício está claro que o desconto de 20% são para pessoas com quantidade de milhas acima de 5000 e até a 29999 e não a partir de 5000. Portanto, observando as especificações do próprio exercício, o código que é dado como correto, está errado nesta parte que citei. Pois se na empresa é dito como regra tais especificações, se caso fizer de forma diferente, a empresa levaria prejuízo. Segue abaixo uma mudança no mesmo código, onde irei trocar o sinal ">=" por ">", observe na linha 5, em negrito.
let porcentagemDesconto = 0;
if(quantidadeMilhas >= 30000){
porcentagemDesconto = 20;
} else if(quantidadeMilhas > 5000){
porcentagemDesconto = 10;
}
Dado tal correção, espero que tenham entendido. Não procurei citar outros erros no código pois acredito não ser necessário!
Deixo aberto aqui a perguntas e discussão sobre isso.
Obrigado!