1
resposta

[Dúvida] Eu não entendi como chegou a essa conclusão. Alguém poderia me explicar melhor?

Eu não entendi como chegou a essa conclusão. Alguém poderia me explicar melhor?

1 resposta

Olá João! Tudo certo?

Sei bem que a lógica do código pode ser um pouco confusa no início, mas vamos tentar descomplicar isso juntos. A dúvida parece estar relacionada a como o código decide qual desconto aplicar com base na quantidade de milhas.

O bug no código original acontece porque ele não está aplicando corretamente as regras de desconto. Vamos analisar a solução correta, que é a opção D:

let porcentagemDesconto = 0;

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

Aqui está o que acontece:

  1. Primeiro if: verificamos se a quantidade de milhas é maior ou igual a 30.000. Se for, aplicamos um desconto de 20%. Isso já resolve o problema de clientes com mais de 30.000 milhas receberem o desconto correto.

  2. Bloco else: se a quantidade de milhas não for maior ou igual a 30.000, verificamos se é maior que 5.000. Se for, aplicamos um desconto de 10%. Isso corrige o problema de clientes com milhas entre 5.001 e 29.999 não receberem desconto.

  3. Por que else: usamos o else para garantir que, se uma condição for verdadeira (30.000 milhas ou mais), não precisamos verificar a condição seguinte (mais de 5.000 milhas), já que a primeira já foi satisfeita.

Espero que isso ajude a esclarecer como o código chega à conclusão correta sobre qual desconto aplicar.

Bons estudos!

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