Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Uso do while ou do if

Na função sortear, qual a diferença entre usar um while ou um if para verificar números repetidos? Por exemplo: Eu fiz a verificação usando o if já que está dentro do loop ao invés de criar outro e isso não alterou o resultado (pelo menos não percebi) for (let i = 0; i < quantidade; i++){ numero = obterNumeroAleatorio(de, ate); if(sorteados.includes(numero)){ numero = obterNumeroAleatorio(de, ate); } sorteados.push(numero); }

1 resposta
solução!

Oi, Ismael! Tudo bem?

A diferença entre usar um while ou um if em nosso código se dá principalmente na quantidade de vezes que a verificação será feita. No exemplo fornecido, estamos usando um if para verificar se o número sorteado já existe no array sorteados, se existir, sorteamos um novo número. No entanto, esse novo número sorteado não é verificado novamente. Ou seja, se o novo número também já existir no array, ele será inserido mesmo assim, porque o if só verifica uma vez.

Agora, se usassemos um while ao invés do if, a verificação seria feita repetidamente até que a condição não seja mais satisfeita. Ou seja, o while continuaria sorteando e verificando novos números até que um número que não exista no array seja sorteado.

Aqui está um exemplo de como ficaria o nosso código com o while:

for (let i = 0; i < quantidade; i++){
    numero = obterNumeroAleatorio(de, ate);
    while(sorteados.includes(numero)){
        numero = obterNumeroAleatorio(de, ate);
    }
    sorteados.push(numero);
}

Nesse caso, o while garantiria que nenhum número repetido fosse inserido no array sorteados.

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

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓

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