1
resposta

Observação sobre a solução do professor

Ao fazermos:

if (quantidade > (ate - de + 1)) {
    alert('Campo "Quantidade" deve ser menor ou igual ao intervalo informado no campo "Do número" até o campo "Até o número". Verifique!');
    return;
  }

O problema estará resolvido. Mas se colocarmos a quantidade correta, mas com o DE maior do que o ATE, a mensagem acima vai se repetir, ao invés de informar que o número inicial DE deve ser menor ou igual do que o ATE.

Recomendo usar um módulo:

if (quantidade > (Math.abs(ate - de) + 1)) {
    alert('Campo "Quantidade" deve ser menor ou igual ao intervalo informado no campo "Do número" até o campo "Até o número". Verifique!');
    return;
  }
1 resposta

Oi, Igor! Tudo bem?

Obrigada pela sugestão, o seu ponto é muito interessante! De fato, o código original não considera a situação em que o valor de "DE" é maior do que o valor de "ATE" e a sugestão apresentada consegue resolver o problema.

Porém, é importante notar que se o objetivo for garantir que "DE" seja sempre menor ou igual a "ATE", a inclusão do módulo poderia permitir entradas que não são logicamente corretas (como "DE" sendo 10 e "ATE" sendo 5). Nesse caso, deixo como sugestão adicionar uma verificação separada para essa condição, como no exemplo abaixo:

if (de > ate) {
    alert('Campo "Do número" deve ser menor ou igual ao campo "Até o número". Verifique!');
    return;
}
if (quantidade > (ate - de + 1)) {
    alert('Campo "Quantidade" deve ser menor ou igual ao intervalo informado no campo "Do número" até o campo "Até o número". Verifique!');
    return;
}

Dessa forma, o usuário receberá uma mensagem de erro específica para cada situação: uma se "DE" for maior que "ATE", e outra se a quantidade for maior que o intervalo.

Espero ter ajudado! Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!