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

Nessa aula o que vem me confundindo bastante é essa parte de achou = false; quando chega nisso embola minha mente; tem como alguem me falar alguma forma mais fácil de entender isso?

var achou = false
3 respostas
solução!

Boa noite, eu entendi dessa forma. Declara a variável ACHOU para as condicionais saberem quando há número repetido ou não. O variável (var achou) já começa com false, pois entende-se que o número sorteado não é repetido, na verdade não sabemos ainda. Ai entra no FOR, vamos comparar cada número que temos na ARRAY segredos com o numero que foi gerado agora. No código temos: if (segredos[posicao] == numeroAleatorio). Se isso for verdade, a variável achou vai receber true (achou = true) e sai da condicional com o break.

O código continua com um outro IF. if (achou == false) , se isso for verdade vai entrar nessa condicional e executar a adição do número na ARRAY segredos, mas o nosso número gerado foi igual e como vimos no if anterior, o var achou agora é true, então a condição para entrar nesse segundo if não é atendida. Sendo assim, o código volta a ler o WHILE e sem alterar a variável numero.

Ou seja, achou = true, vai pular o if que adiciona um número no array e volta pro while.

Usando o modo debug da pra visualizar o passo a passo da leitura do código. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Explicação muito boa, hoje já não consigo absorver mais nada, pretende rever conteúdo dessa aula amanha, seu comentário ja me adiantou muito coisa que não peguei, obg. :)

Olá, Jonison.

Variáveis booleanas (lógicas) são aquelas em que você pode atribuir apenas dois valores: true (verdadeiro) ou false (falso).

Imagine que está escrevendo um programa em que precisa saber sobre a situação de uma porta: não existe entreaberto pro computador, ou a porta está aberta ou fechada (chamamos em lógica de Lei do Terceiro Excluído). Isso é muito prático. Imagine que a variável de status dos alunos é aprovado. Logo ela poderá ser booleana porque ou o aluno será aprovado ou reprovado, ficando claro pelo valor da variável.

aprovado = true: significa que o aluno foi aprovado. aprovado = false: significa que o aluno não foi aprovado (reprovado).

Não vi o problema completo ainda, mas pelo print do Matheus, faria as seguintes observações:

  1. x = y significa que x recebe o valor de y
  2. x == y é um teste. Isso dará verdadeiro ou falso. É como se fosse perguntado x = y? No entanto esse teste não verifica o tipo de dado no Javascript.
  3. Para ter certeza que o tipo de dado será levado em consideração também use x === y. Se fizer o teste 10 == '10' obterá true, embora o valor à direita seja um número inteiro e o segundo uma string.