1
resposta

Alguém me explica esse exercício proposto?

let porcentagemDesconto = 0;

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

if(quantidadeMilhas >= 30000){
    porcentagemDesconto = porcentagemDesconto + 20;
} else {
    porcentagemDesconto = 0;
}
1 resposta

Olá Jéssica! Tudo bem?

O código que você compartilhou está tentando aplicar descontos com base na quantidade de milhas que um cliente possui. No entanto, há um problema na forma como as condições estão estruturadas, o que está levando a resultados incorretos.

Vamos analisar a lógica correta para aplicar os descontos:

  1. Clientes com menos de 5.000 milhas não devem receber desconto algum.
  2. Clientes com 30.000 milhas ou mais devem receber 20% de desconto.
  3. Clientes com mais de 5.000 milhas, mas menos de 30.000, devem receber 10% de desconto.

No código original, o problema está na forma como os descontos são acumulados e resetados. A opção correta para corrigir o bug é a opção D, que utiliza um if dentro do else. Vamos ver como ela funciona:

let porcentagemDesconto = 0;

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

Com essa estrutura, o código verifica primeiro se a quantidade de milhas é 30.000 ou mais e aplica 20% de desconto. Se não for o caso, ele verifica se a quantidade de milhas é maior que 5.000 e, se for, aplica 10% de desconto. Assim, garantimos que os descontos são aplicados corretamente sem acumular valores indevidos.

Espero ter ajudado e bons estudos!

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