1
resposta

Resolvi com outra lógica

let porcentagemDesconto = 0;
let quantidadeMilhas = prompt("Quantidade de milhas: ")
let custo_milha = 2;
let valor_milha = quantidadeMilhas * custo_milha;
window.alert(`O seu custo de milhas sem o desconto é de: R$ ${valor_milha}`)
console.log(valor_milha)
if(quantidadeMilhas > 5000 && quantidadeMilhas < 30000){
    porcentagemDesconto = porcentagemDesconto + 0.10;
    valor_milha -= valor_milha *  porcentagemDesconto
    window.alert(`O seu custo de milhas com o desconto de 10% é de: R$ ${valor_milha}`)

}
if(quantidadeMilhas > 30000){
    porcentagemDesconto = porcentagemDesconto + 0.20;
    valor_milha -= valor_milha *  porcentagemDesconto
    window.alert(`O seu custo de milhas com o desconto de 20% é de: R$ ${valor_milha}`)
} else {
    porcentagemDesconto = 0;
    
}
1 resposta

Olá, Gustavo! Como vai?

Parece que você encontrou uma solução alternativa para a atividade proposta, isso é ótimo! A lógica que você usou está correta e funciona bem. No entanto, eu gostaria de sugerir uma pequena modificação no seu código para torná-lo mais eficiente.

No seu código, você está calculando o desconto duas vezes quando a quantidade de milhas é superior a 30.000. Isso acontece porque a primeira condição if(quantidadeMilhas > 5000 && quantidadeMilhas < 30000) também é verdadeira quando a quantidade de milhas é superior a 30.000. Então, o desconto é aplicado uma vez nessa condição e uma segunda vez na condição if(quantidadeMilhas > 30000).

Para evitar esse cálculo duplo, você pode usar a estrutura if...else if...else, que garante que apenas uma das condições seja atendida. Veja como ficaria:

let porcentagemDesconto = 0;
let quantidadeMilhas = prompt("Quantidade de milhas: ")
let custo_milha = 2;
let valor_milha = quantidadeMilhas * custo_milha;
window.alert(`O seu custo de milhas sem o desconto é de: R$ ${valor_milha}`)
console.log(valor_milha)
if(quantidadeMilhas > 30000){
    porcentagemDesconto = porcentagemDesconto + 0.20;
    valor_milha -= valor_milha *  porcentagemDesconto
    window.alert(`O seu custo de milhas com o desconto de 20% é de: R$ ${valor_milha}`)
} else if(quantidadeMilhas > 5000){
    porcentagemDesconto = porcentagemDesconto + 0.10;
    valor_milha -= valor_milha *  porcentagemDesconto
    window.alert(`O seu custo de milhas com o desconto de 10% é de: R$ ${valor_milha}`)
} else {
    porcentagemDesconto = 0;
}

Dessa forma, se a quantidade de milhas for superior a 30.000, a primeira condição será atendida e as outras serão ignoradas. Se for superior a 5.000, mas inferior a 30.000, a segunda condição será atendida. E se for inferior a 5.000, a última condição será atendida.

Espero que isso ajude. Caso tenha dúvidas, fico à disposição.

Abraços e bons estudos!