Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Nesse caso o correto não seria considerar no código => 5000?

Pelo que entendi do problema...

"Mas, segundo relatos de clientes, ao tentar utilizar o desconto referente a 5.000 milhas, não ocorre nenhum desconto..."

Deveria ser considerado o desconto quando o valor fosse >5000, no caso a partir de 5001.

Mesma regra para o >30000

1 resposta
solução!

Oi, Anderson, tudo bem?

Sim, o desconto deveria ser aplicado nessas condições, porém a estrutura condicional de ife else, faz com que pessoas com milhas superiores a 30000, recebam descontos maiores que 20% e pessoas com milhas entre 5000 e 30000 não recebam descontos, pois a leitura das condicionais é a seguinte: se a quantidade de milhas for maior que 5000 e maior que 30000 elas recebem 10% e mais 20% de desconto totalizando os 30%, caso contrário, elas não recebem nenhum desconto, é como se para ganhar o desconto as duas primeiras condições precisassem ser verdadeiras. Uma forma de resolver o problema, seria aplicando o seguinte comando:

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

No código acima, a utilização do bloco if dentro do bloco else garante que, caso a quantidade de milhas for superior a 30000, o desconto será de 20%, e caso não for superior a este valor, mas for superior a 5000, o desconto será de 10%. Para o caso da quantidade de milhas ser inferior a 5000, o desconto permanecerá zerado, pois não existe a quantidade mínima para ganhar desconto.

Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!

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