2
respostas

[Dúvida] Valor das milhas

Fiz meu codigo adicionando algumas coisas para conferir o resultado, usando o console pra saber se o resultado está correto, não sei se meu codigo está seguindos as boas praticas de programação mas funcinou. Queria saber se tem algo que eu deveria mudar

let porcentagemDesconto = 0;
let quantidadeMilhas = prompt('Digite sua quantidade de milhas');

if(quantidadeMilhas > 30000) {
    porcentagemDesconto = porcentagemDesconto + 20;
    console.log(porcentagemDesconto);

} else if (quantidadeMilhas > 5000) {
        porcentagemDesconto = porcentagemDesconto + 10;
        console.log(porcentagemDesconto);
    }
2 respostas

Seu código parece estar funcional, e é bom que você tenha usado o console para verificar os resultados. No entanto, aqui estão algumas sugestões para melhorar o código e seguir algumas boas práticas de programação:

  1. Constantes para valores fixos: Se a porcentagem de desconto é fixa, é uma boa prática declarar esses valores como constantes. Isso torna o código mais legível e facilita a manutenção.

  2. Verificação de entrada: Certifique-se de que a entrada do usuário é válida antes de prosseguir. No momento, seu código assume que o usuário digitará um número. Se o usuário inserir uma string ou um valor inválido, seu código pode não se comportar como esperado. Considere validar a entrada para garantir que seja um número.

  3. Indentação consistente: A indentação é fundamental para a legibilidade do código. Certifique-se de que a indentação está consistente. No seu exemplo, a indentação parece correta, mas mantenha esse padrão ao longo do código.

  4. Comentários explicativos: Adicione comentários para explicar partes específicas do seu código. Isso pode ser útil para outros desenvolvedores (ou para você mesmo no futuro) entenderem a lógica por trás das decisões tomadas.

  5. Evite usar prompt para entrada em ambientes não relacionados ao navegador: O uso do prompt pode não ser adequado em ambientes que não sejam navegadores. Considere usar readline se você estiver executando seu código fora de um ambiente de navegador.

Aqui está um exemplo incorporando essas sugestões:

const DESCONTO_MAXIMO = 20;
const DESCONTO_MEDIO = 10;

let porcentagemDesconto = 0;
let quantidadeMilhas = prompt('Digite sua quantidade de milhas');

// Verificar se a entrada é um número válido
if (isNaN(quantidadeMilhas)) {
    console.error('Por favor, insira um número válido.');
} else {
    quantidadeMilhas = parseFloat(quantidadeMilhas);

    // Lógica de cálculo de desconto
    if (quantidadeMilhas > 30000) {
        porcentagemDesconto += DESCONTO_MAXIMO;
        console.log(porcentagemDesconto);
    } else if (quantidadeMilhas > 5000) {
        porcentagemDesconto += DESCONTO_MEDIO;
        console.log(porcentagemDesconto);
    }
}

Lembre-se, essas são sugestões e não regras rígidas. A escolha de adotar ou não essas práticas pode depender do contexto específico do seu projeto.

Para te ajudar a compreender a origem do bug, sua liderança explicou a regra de negócio utilizada para compras de pacotes de viagens com milhas:

Pessoas com uma quantidade de milhas inferior a 5.000 não recebem desconto.
Pessoas com uma quantidade de milhas superior a 30.000 recebem 20% de desconto.
Pessoas com uma quantidade de milhas superior a 5.000, mas inferior a 30.000, recebem 10% de desconto.

Mas, segundo relatos de clientes, ao tentar utilizar o desconto referente a 5.000 milhas, não ocorre nenhum desconto. Já clientes com mais de 30.000 milhas estão recebendo desconto excedente ao que deveriam receber.

Como você poderia modificar o código para que ele funcione corretamente? Selecione a opção correta:

Está faltando o desconto intermediário, no case para resolver, a resolução e vem feia também, um else if seria suficiente......