Boa noite pessoal, esse é um trecho do codigo do professor, que tem como função retornar numeros que nao sejam "0" e numeros diferente dos ja armazenados.
E esse trecho de codigo é perfeitamente funcional, o que me deixa perplexo é como é possivel esse trecho ser funcional ?
Sendo que caso o numero sorteado seja "0" o progama passaria direto pelo 1º "If" e faria o 2º "if", sem alterar o valor da flag "achou" que foi previamente declarada como "false", logo ele armazenaria o numero "0" na variavel "segredo" tornando o programa não-funcional.
function sorteiaNumeros(quantidade) {
var segredos = [];
var numero = 1;
while(numero <= quantidade) {
var numeroAleatorio = sorteia();
var achou = false;
if (numeroAleatorio !== 0) {
for(var posicao = 0; posicao < segredos.length; posicao++) {
if(segredos[posicao] == numeroAleatorio){
achou = true;
break;
}
}
if (achou == false) {
segredos.push(numeroAleatorio);
numero++;
}
}
}
return segredos;
}