Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Eu não consegui entender bem essa parte do código

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

Eu fiz essa parte exatamente como foi mostrado na aula para todos poderem entender de qual parte se trata. na minha mente a leitura desse código seria ("se o numero aleatório encontrado foi igual ao numero em segredo na posição em questão, então achou é igual a true e para") e acho eu, que se a leitura dessa parte do código fosse essa, a lista não seria inteiramente varrida eu que o código está certo pq vi funcionar sem erros, entretanto me confundi com a leitura do código e por isso vim tirar essa dúvida se alguém puder me ajudar, e me explicar exatamente como é lida essa parte do código eu agradeceria muito.

5 respostas

Rodrigo tem certeza que quando ele cai no break a varredura não para? Porque do jeito que está ai o numero vai cair no if e irá parar sua varredura com o break!

Está caindo no if? Tem certeza que a posição é == ao numeroAleatorio para entrar no if? Porque como disse é para parar a varredura da sua lista se entrar no if.

Sim, está correto o código Esse if é uma verificação para caso haja um número repetido no array de segredos Mais abaixo tem a continuação (caso "achou" seja falso, logo o número encontrado não é repetido e poder ser adicionado à lista) Oq eu realmente não entendi bem é o que esse código quer literalmente dizer, sabe? Eu entendo como ele funciona, mas qnd eu tento ler o código inteiro, por exemplo, eu me enrolaria pra explicar a tradução do que essa parte do código quer dizer

solução!

Resumidamente o código quer dizer isso que você acabou de falar.

Você tem um if, e o if tá verificando se a posição do seu array é igual o numeroAleatorio, se for igual irá entrar dentro do if, irá mudar a sua variavel achou para true, e irá parar de percorrer sua lista, é praticamente isso, no começo é normal fazer confusão com o array, mais depois com a pratica você pega como funciona

A essência, como os colegas já disseram, é a seguinte. Você quer varrer cada item do array e verificar se o já existe o número que você deseja adicionar. Se existir, você marca como achado na variável achou = true e sai do loop da verificação imediatamente. Não faz sentido continuar procurando o número nas outras posições porque você já o encontrou. Por isso o break. Caso o número não exista, a condição if nunca será atendida, acho continuará false e também o break não será executado. Você terá ido do início até o fim do array.

A variável achou é para você saber, depois de ter encontrou ou não um item no array, se pode adicioná-lo no array ou não.

Acredito que quando o achou se torna true, então ele faz o break sai do if em questão e vai ao próximo, como o próximo necessita do achou igual a false ele nem chega a entrar nesse bloco, então o while recomeça novamente.