11
respostas

Resolução Exercício Quantidade de millhas

Apesar da resposta correta ser:

let porcentagemDesconto = 0;

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

Verifiquei que existe um erro de lógica no código. Se a quantidadeMilhas = 5000, o desconto será de 0.

  • 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.

Para atender totalmente às regras de negócio, deveria colocar '>= 5000' na última condição, como o código abaixo:

let porcentagemDesconto = 0;

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

Analisando as Regras de negócio:

  • milhas inferior a 5.000 (até 4.999 ) não recebem desconto.
  • milhas superior a 30.000 (a partir de 30.001 = se verdade entra no if) recebem 20% de desconto.
  • milhas superior a 5.000, mas inferior a 30.000 (milhas a partir de 5.001 até 29.999 = senão, se for verdade entra no if do else) , recebem 10% de desconto.

Considero o resposta do código abaixo correta.

let porcentagemDesconto = 0;

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

O requisito é: milhas inferior a 5.000 (até 4.999 ) não recebem desconto

Mas, com o código acima, se quantidadeMilhas = 5.000 o desconto vai ser de 0%, quebrando a regra.

5000 não é maior que 5000, entende?

ou o segundo if fica: if(quantidadeMilhas > 4999) ou if(quantidadeMilhas >= 5000)

do jeito que está, quantidadeMilhas = 5.000 vai ficar com zero de desconto e 5000 é maior que 4999

Também pensei do mesmo jeito, deveria ser maior igual.

Também concordo com Edimilson.

5000 não entra na regra de negócio. Não precisa ser validado. A gente cria o sistema para atender às regras da empresa. Continuo com a resposta anterior. Vale perguntar no Discord.

Concordo com a Letícia.

Edmilson, alí na regra do negócio não diz eu que 5.000 recebe desconto e sim que maior que 5.000 recebe. acredito que o terceiro tópico da regra responde a pergunta.

Em um projeto real acredito que essa regra de negócio poderia ser melhor escrita.

Eu pensei exatamente com a lógica da Letícia. Eu não sei vocês, mas dessa forma, escrevendo eu percebo que consigo realmente melhorar meu aprendizado.

Boa tarde pessoal, alguém pode me ajudar? Depois que instalei Live Server não consigo atualizar modificações no meu código. E quando vou no index.html da pasta aparece o projeto anterior do número secreto. Como posso reverter isso?

O nome da pasta entre aspas no corpo do Index está correto?

Entendi!

* Tem regra para < 5000 - 0%
* Tem regra para > 5.000, mas inferior a <30.000 - 10%
* Tem regra para superior a 30000 - 20%

E cagaram para o 5000 e o 30000... Só acho essa lógica um pouco demais para quem está começando na programação, não acham? O cara não sabe dar um console.log e... enfim... tá certo!

Edmilson, não se assuste com isso, durante um projeto real há muito diálogo acerca da regra do negócio. Isso é só para nós sentirmos o gostinho da realidade.

Não desanime!

Eu possuo algum conhecimento em programação pois cursei na Universidade e estou vendo coisas que não aprendi na faculdade por causa do tempo e da didática. Estou gostando bastante!