Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Bug] Cenário em que o while infinito

Com o código dessa forma

    for (let i = 0; i < qtyNumber; i++) {
        var drawedNumber = randomNumber(fromNumber, toNumber);

        while (drawedList.includes(drawedNumber)) {
            var drawedNumber = randomNumber(fromNumber, toNumber);
        }

        drawedList.push(drawedNumber)
    }

notei que, se a quantidade de números (qtyNumber) form maior que o tamanho da lista (drawedList), o navegador trava. Ou seja, se todos os números forem sorteados, o código entra em loop no while, porque ele vai sempre estar gerando um novo número e nunca vai encontrar um número que não está na lista.

na prática, se eu peço para sortear 6 números entre 1 e 5, vai travar porque o 6 números será impossível. Idealmente precisamos de um tratamento para isso, de forma que a quantidade de números deva ser, no máximo, do tamanho da lista (fromNumber, toNumber).

Faz sentido?

2 respostas

Código completo: https://github.com/oswaldovzki/jsApps/tree/main/sorteador-numeros

solução!

Opa!

A resolução para esse problema já foi tratada no item 14 do curso: https://cursos.alura.com.br/course/logica-programacao-praticando-desafios/task/150673