2
respostas

A resposta indicada como certa contém vários erros

A resposta indicada como certa está assim

let porcentagemDesconto = 0;

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

}

Erros:

  1. A resposta não dá desconto para quem tem 5000 milhas
  2. A resposta fecha uma chave que não foi aberta.

Em suma, ela está sintática e semanticamente errada.

2 respostas
  1. Concordo, o enunciado fala de inferior ( < ) e superior ( > ) mas não abrange o igual ( = )
  2. Da chave está certa, só está mal indentado.
let porcentagemDesconto = 0;

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

Continua errado pois

  1. O enunciado não menciona o caso de 5000 MAS
  2. A ausência de desconto dos 5000 é apontada como um erro.

E como a solução não corrige o erro apontado no enunciado, o mínimo esperado seria apontar a má qualidade da especificação, que não trata do valor 5000.

De fato, o fecha chaves estava numa posição bem ruim dificultando o entendimento.

Dado que é um curso de introdução, acho que vale a pena corrigir o enunciado, apresentar uma resposta que cubra todos os valores (do jeito como está, sem tratar o valor 5000 está indiscutivelmente ruim) e melhorar a apresentação da resposta.