1
resposta

Alguém me ajuda! Não entendi!

Não entendi esta parte do código:

if(numeroAleatorio !== 0) {
                var achou = false;

                for (var posicao = 0; posicao < segredos.length; posicao++) {

                    if (segredos[posicao] == numeroAleatorio){
                        achou = true;
                        break;
                    }
                }

                if(achou == false) {
                    segredos.push(numeroAleatorio);
                    numero++;
                }
            }            
        }

        return segredos;
    }
1 resposta

Fala, Gabriel! Espero que esteja bem

Bóra lá!

Primeiro temos uma condicional onde traz a seguinte premissa: Se o numeroAleatório for diferente de zero.

  • Se o número sorteado for diferente de zero, será verdadeiro e entrará nesse if
if(numeroAleatorio !== 0) {

A variável achou vai receber false

if(numeroAleatorio !== 0) {

     var achou = false;

Agora, entraremos no looping for onde:

  • A variável posicao iniciará com zero
  • Enquanto a variável posicao for menor que a array segredos
  • Incremento da variável posicao
if(numeroAleatorio !== 0) {

     var achou = false;

                for (var posicao = 0; posicao < segredos.length; posicao++) {

Se o número aleatório que bater ali já estiver dentro da array

  • A variável a achou receberá true
  • O método break será lançado para interromper o looping
if(numeroAleatorio !== 0) {

     var achou = false;

                for (var posicao = 0; posicao < segredos.length; posicao++) {

                    if (segredos[posicao] == numeroAleatorio){
                        achou = true;
                        break;
                    }
                }

Já, se o número aleatório não coincidir com o número que já existe dentro da array

  • O push vai inserir dentro da array segredos esse número que ainda não existe lá dentro
  • A variável número vai somar mais um
if(numeroAleatorio !== 0) {

     var achou = false;

                for (var posicao = 0; posicao < segredos.length; posicao++) {

                    if (segredos[posicao] == numeroAleatorio){
                        achou = true;
                        break;
                    }
                }

                if(achou == false) {
                    segredos.push(numeroAleatorio);
                    numero++;
                }
            }            
        }

Depois de acabar o looping, ou pelo break ou pelo iterador, ele sairá e devolverá a lista de números guardados em segredos.

if(numeroAleatorio !== 0) {

     var achou = false;

                for (var posicao = 0; posicao < segredos.length; posicao++) {

                    if (segredos[posicao] == numeroAleatorio){
                        achou = true;
                        break;
                    }
                }

                if(achou == false) {
                    segredos.push(numeroAleatorio);
                    numero++;
                }
            }            
        }

        return segredos;
    }

Espero ter deixado claro, Gabriel!

Um abraço e bons estudos