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

Secret, a lógica por trás do FOR

Jogo da Adivinhação, números aleatórios, sem o zero e sem números repetidos.

function sorteiaNumeros(qtd){ //Criamos a função sorteiaNumeros.

var secret = [];                                     //Com suas variáveis.
var num = 1;

while(num <= qtd){                          //while, para gerarmos os elementos da lista secret.

    var numAleatorio = sorteia ();       //Variável numAleatório chamando a função sorteia.

    if(numAleatorio !== 0){                   //Condição para números diferentes de zero.

    var achou = false;

    for(var posicao = 0; posicao < secret.length; posicao++) {     //for para criarmos nºs diferentes.
        if (secret[posicao] == numAleatorio) {
        achou = true;
        break;
    }
}

if(achou == false) {

    secret.push(numAleatorio);             //empurra numAleatorio para a lista secret.
    num++;                                                         // incrementa num até o valor de qtd.
}
}

} return secret; //retorna valores que serão atribuídos aos segredos.

No comando for, para criarmos números diferentes, var posicao é declarado e inicializado com valor nulo, em seguida, temos a condição posicao < secret.length para execução do if que vem abaixo: if(secret[posicao]==numAleatorio). E, por fim, o incremento com posicao++. Certo? Quando var numAleatorio gerar o primeiro número (sendo diferente de zero), este ocupará a posição secret[0], então, como o if que vem abaixo será false? numAleatorio e secret[0] não serão os mesmos? Aliás, como posicao < secret.length, já que secret só terá um "tamanho", depois que valores lhe forem inseridos?

1 resposta
solução!

Olá! Como vai?

Mandou bem demais, parabéns pelo seu empenho!

Caso tenha ficado com alguma dúvida não deixe de compartilhar com a gente.

Continue praticando, bons estudos e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

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