3
respostas

[Sugestão] Resposta sugerida errada quebra a condição "igual ou superior a 30.000"

A resposta sugerida de if dentro do else resolve a questão do desconto superior ou desconto zerado incorretamente, mas ao trocar >= 30.000 por >30.000, passo a considerar que o critério de 20% de desconto é somente a partir de 30.001, não 30.000 como a empresa sugere.

"Pessoas com uma quantidade de milhas igual ou superior a 30.000 recebem 20% de desconto."

Acredito ser necessário corrigir a alternativa da solução.

3 respostas

Olá, Vitor.

Tudo bem?

Você está absolutamente correto em sua observação. A condição que define o desconto de 20% deveria ser "igual ou superior a 30.000", e não apenas "superior a 30.000". Isso significa que o código deveria ser quantidadeMilhas >= 30000 ao invés de quantidadeMilhas > 30000.

A opção correta, considerando sua observação, seria uma pequena modificação na opção D:

let porcentagemDesconto = 0;

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

Agradeço por ter apontado essa questão. Sua atenção aos detalhes é muito valiosa e contribui para a qualidade do nosso curso.

Espero ter ajudado e bons estudos!

Tentei procurar a opção que resolveria todos os bugs mesmo assim o cliente com 5000 continuaria reclamando por não receber o desconto. Creio que um >= 5000 resolveria essa questão


let porcentagemDesconto = 0;

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

Desconsiderem o comentário abaixo, kkkkkk Vi que é uma prática comum do uso desse código.


Pessoal, sou novo na área e posso não ter muita propriedade para argumentar. Mas tive uma dúvida quanto a esse exercício: Ao utilizar essa construção porcentagemDesconto = porcentagemDesconto + 10 não faria com que o valor que retornasse fosse duplo?

No caso acima, se o valor atribuído à variável é zero (let porcentagemDesconto = 0;), a construção não ficaria "0 = 10"???

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software