2
respostas

[Dúvida] Valor das milhas

Tenho uma dúvida nessa atividade, na plataforma da Alura diz que a opção correta é a D que tem esse seguinte codigo:

let porcentagemDesconto = 0;

if(quantidadeMilhas >= 30000){
    porcentagemDesconto = porcentagemDesconto + 20;
} else {
    if(quantidadeMilhas > 5000){
    porcentagemDesconto = porcentagemDesconto + 10;
}

}

Porém eu acho que está errado esse código, acho que deveria ser assim:

let porcentagemDesconto = 0;

if(quantidadeMilhas >= 30000){
    porcentagemDesconto = porcentagemDesconto + 20;
} else {
    if(quantidadeMilhas >= 5000){
    porcentagemDesconto = porcentagemDesconto + 10;
}

}

A diferença está nessa parte: if(quantidadeMilhas >= 5000){ dessa forma se for maior ou igual a 5 mil o cliente vai receber o desconto, na solução que a plataforma indica que é essa: if(quantidadeMilhas > 5000){ só ganha desconto cliente que tem mais de 5 mil , ou seja se ele tiver 5001 ou mais ela ganha desconto, porém 5 mil certinho ela ainda não vai ganhar o desconto.

2 respostas

Oi, Joseph! Tudo bem?

A opção D é considerada correta porque está de acordo com as regras de negócio definidas no enunciado do exercício:

  1. Pessoas com uma quantidade de milhas inferior a 5.000 não recebem desconto.
  2. Pessoas com uma quantidade de milhas igual ou superior a 30.000 recebem 20% de desconto.
  3. Pessoas com uma quantidade de milhas superior a 5.000, mas inferior a 30.000, recebem 10% de desconto.

Analisando o código da opção D podemos observar que, inicialmente, ele verifica se a quantidade de milhas é maior ou igual a 30.000, se for, ele adiciona 20% de desconto, caso não, ele entra no bloco else e verifica se a quantidade de milhas é maior que 5.000. Se for, ele adiciona 10% de desconto, se não for, ele não faz nada, ou seja, não dá desconto, o que está de acordo com a regra de negócio.

Porém, a condição if(quantidadeMilhas >= 5000) faz com que pessoas com exatamente 5.000 milhas recebam o desconto, o que contradiz a regra de negócio que diz que pessoas com uma quantidade de milhas inferior a 5.000 não recebem desconto, por isso, a opção D está correta.

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓

A regra, na verdade, não informa o que acontece com a pessoa que tem exatamente 5000, por isso o exercício está incompleto e as reclamações dos clientes não vão ser resolvidas.