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 ✓