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

Uncaught SyntaxError: Unexpected token 'var'.

Oi pessoal! Eu estou tendo um problema nesse código, quando eu entro no console aparece Uncaught SyntaxError: Unexpected token 'var'.

<meta charset="utf-8">

<input/>
<button> Tente adivinhar! </button>

<script>

    function sorteia() 

        {return Math.round(Math.random() * 10);}
    function sorteiaNumeros(quantidade)
        {var segredos = [];
        var numero = 1;
        while(numero = quantidade)

            {var numeroAleatorio = sorteia();
            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;}

    var segredos = sorteiaNumeros(3);

    console.log(segredos);

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

    function verifica()

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

        {if(input.value == segredo)

        {alert("Você acertou!");
            achou = true;
            break;}}

        if(achou == false)
            {alert("Você errou ;(");}

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

    var button = document.querySelector("button");
    button.onclick = verifica;

</script>

Me parece que eu estou com um problema na linha 38, mas eu não consigo identificar... Alguém pode me ajudar?

3 respostas
solução!

Olá Maria, tudo certo?

Vendo aqui seu código, notei que você esqueceu de abrir as chaves na função verifica. Isso corrige o erro que está aparecendo, mas outro erro aparece, e esse também é uma chave que você não fechou no início do código.

Outro erro que passou despercebido foi nessa linha, que você colocou o '=', mas acredito que o correto é '<='. Do jeito que você colocou fica um loop infinito:

while(numero <= quantidade){

Uma dica para evitar esses erros seria você ajustar a sua identação. Para você deve fazer sentido identar desse jeito, mas outra pessoa vendo o código pode achar ele um pouco confuso. A falta de abertura e fechamento das chaves poderia ter sido facilmente detectada com uma identação mais usual.

Espero ter ajudado!

Exemplo de código melhor identado (com todos os erros já corrigidos):

<script>


    function sorteia() {
        return Math.round(Math.random() * 10);
    }

    function sorteiaNumeros(quantidade){
        var segredos = [];
        var numero = 1;
        while(numero <= quantidade){
            var numeroAleatorio = sorteia();
            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;
    }

    var segredos = sorteiaNumeros(3);

    console.log(segredos);

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

    function verifica(){

        var achou = false;
        for(var posicao = 0; posicao < segredos.length; posicao++){
            if(input.value == segredo){
                alert("Você acertou!");
                achou = true;
                break;
            }
        }

        if(achou == false){
            alert("Você errou");
        }

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


    var button = document.querySelector("button");
    button.onclick = verifica;

</script>

Muito obrigada!

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