Olá, Renan! Tudo joia?
É ótimo ver seu entusiasmo em testar soluções por conta própria! Vamos analisar o seu código:
let quantidadeMilhas = prompt('numero milhas');
let porcentagemDesconto = 0;
if(quantidadeMilhas >= 5000){
porcentagemDesconto = 10;
}
if(quantidadeMilhas >= 30000){
porcentagemDesconto = 20;
}
alert(porcentagemDesconto);
O que acontece aqui é que o segundo if sempre será avaliado, mesmo que o primeiro já tenha sido verdadeiro. Isso significa que, se a quantidadeMilhas for 30.000 ou mais, o desconto será sempre 20%, o que está correto. No entanto, se for entre 5.000 e 29.999, o desconto será 10%, também correto.
No entanto, para seguir a lógica de uma única avaliação por milhas, você pode usar else if, assim:
let quantidadeMilhas = prompt('numero milhas');
let porcentagemDesconto = 0;
if(quantidadeMilhas >= 30000){
porcentagemDesconto = 20;
} else if(quantidadeMilhas >= 5000){
porcentagemDesconto = 10;
}
alert(porcentagemDesconto);
Dessa forma, o código verifica primeiro se a quantidadeMilhas é maior ou igual a 30.000 e, se não for, verifica se é maior ou igual a 5.000. Isso garante que apenas um bloco de código será executado.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.