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

Como funciona o var = true /// var = false? (Aula9)

Amigos, bom dia!

No primeiro vídeo da Aula 9, o professor utiliza os códigos: var achou = false var achou = true var achou == false

Porém não consigo entender o porque disso ter dado certo. Por exemplo, ao invés de var achou == false, o correto não seria var achou = false mesmo?

Realmente não consigo entender o pq disso ter dado certo.

Vocês podem me ajudar?

<meta charset="UTF-8">

<input/>
<button>Compare com o número que estou pensando!</button>

<script>
     var segredos = [5,7,10,2,3];

    var input = document.querySelector("input");
    input.focus();    

    function verifica() {

        var achou = false; /// aqui

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

            if(input.value == segredos[posicao]) {

                alert("Parabéns! Você acertou o número secreto");
                achou = true; /// aqui
                break;
            }

        }
        if(achou == false){////aqui

            alert("Você Errou");

        }    

        input.value = "";
        input.focus();    

    }




    var button = document.querySelector("button");
    button.onclick = verifica;
</script>
7 respostas

Kaique vamos lá o professor usou o sinal de = para atribuir o valor da variavel para false, lembrando que o sinal de = é atribuição correto, mesma coisa assim.

var seuNome = "Kaique";

ele está atribuindo um valor a essa variavel seuNome que é kaique entendeu?

agora no outro caso.

  if(achou == false){////aqui

Aquie ele ta comparando se a variavel que você atribuiu um valor nela é == a false, mesma coisa que.

if(seuNome == "Kaique") // Aqui é uma comparação.

sinal de = atribuiçao, sinal de == verificação.

solução!

Kaique, no começo é bem dificíl entender mesmo, mas com a prática você consegue. Nesse caso, quando estamos verificando os segredos na função, dizemos por si só de começo que ele não achou (achou = false;), ae caímos no for que irá pegar cada elemento do input e irá comparar com cada posição do array de segredo, caso sejam os mesmos números, o segredo está correto não ? Então achou é verdade, achou = true; pois acertamos o segredo ! e se você acertou damos um break; que sai do laço.

Agora se ele não cair no primeiro if, ele vai para o segundo, que por padrão está defido lá encima no primeiro achou = false, onde entramos na função alegando que é mentira que achamos o segredo, então if(achou == false), isto é, se false == false, isto é verdade não ? se for verdade cairá neste if, e imprimirá que você errou o segredo !

Meus amigos, muito obrigado pela ajuda. Ficou um pouco mais claro, porém a lógica ainda não caiu na minha cabeça hahaha. Vou continuar e curso e ver se pego mais experiência para facilitar.

Meus amigos, muito obrigado pela ajuda. Ficou um pouco mais claro, porém a lógica ainda não caiu na minha cabeça hahaha. Vou continuar e curso e ver se pego mais experiência para facilitar.

Kaique isso é na pratica, ná pratica você irá tirar suas duvidas, é o unico jeito, tenta fazer você uma coisa usando os sinais umas coisa simples, por exemplo faz um programinha usado o if e tals

Muito obrigado!

Olá Kaique, o primeiro false ao qual vc se refere trata-se da declaração e inicialização da variável :

var achou = false; /// aqui.

O segundo está dentro de um bloco do if no qual o programa entra no caso de o número digitado coincidir com um dos programados previamente. Caso isso aconteça a variável recebe true e o break interrompe o laço.

if(input.value == segredos[posicao]) {

alert("Parabéns! Você acertou o número secreto"); achou = true; /// aqui break;

O terceiro é pro caso de não coincidir o número e a variável continua como false e o programa segue rodando.

if(achou == false){////aqui

alert("Você Errou");