Pessoal, Tudo bem?
Estava tentando entender o motivo da alternativa "D" ser a correta, mas no meu entendimento do código, a condição só será executada quando o valor da variável quantidadeMilhas for igual ou superior a 30.000, ou seja, o else existente dentro da condição nunca será executado porque seu valor é inferior a primeira condição.
let porcentagemDesconto = 0;
if(quantidadeMilhas >= 30000){
porcentagemDesconto = porcentagemDesconto + 20;
} else {
if(quantidadeMilhas > 5000){
porcentagemDesconto = porcentagemDesconto + 10;
}
}
Exemplo:
quantidadeMilhas = 32.000 --> true para a primeira condição e define a porcentagem para 20 e sai. quantidadeMilhas = 4.000 --> false para a primeira condição e sai quantidadeMilhas = 6.000 --> false para a primeira condição e sai
Ou seja, o else nunca será acionado dentro do if.
Minha proposta de código é essa:
let porcentagemDesconto = 0;
if(quantidadeMilhas > 5000) {
if(quantidadeMilhas >= 30000) {
porcentagemDesconto = porcentagemDesconto + 20;
}
porcentagemDesconto = porcentagemDesconto + 10;
}
Utilizando os mesmos valores das variáveis do exemplo acima, é possível configurar as variáveis porcentagemDesconto conforme a definição da regra de negócio.
OBS: Caso o valor da variável quantidadeMilhas for exatamente 5000, resultará false e a variável porcentagemDesconto continuará com o valor igual a 0. Seria interessante mudar a condição alterando o sinal > para >=
Aguardo um retorno para validar se meu entendimento e proposta estão corretos.