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

por que o </script> não funciona

<meta charset="UTF-8">


<input/>
<button> Compare com o meu segredo </button>

<script>

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

    function sorteiaNumeros(quantidade) { 
        var segredos = [];
        var numero = 1;
        while(numero <= quantidade) {

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

    var segredos = sorteiaNumeros(5);



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

    function verifica() {
        var achou = false;

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

        if(input.value == segredos[posicao]) {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>

o navegador não roda o programa por completo e o desenvolvedor acusa erro na linha final e isso está sendo recorrente, alguém pode me ajudar?

3 respostas

Oi Rita, tudo bem? Espero que sim!

Isso está acontecendo porque a tag script precisa ser aberta logo no início do código, logo após o :

<meta charset="UTF-8">

Altera essa parte e me diz se assim funcionou. Vou aguardar :)

solução!

Olá Rita, tudo bem?

Você esqueceu de fechar a função sorteiaNumeros(). Coloque uma chave de fechamento logos após a linha return segredos;que funcionará:

  return segredos;
}              # AQUI!!!!

Bons estudos!

Rita,

o problema é o que o André indicou: falta fechamento de chave após o return segredos; O navegador não indica o que está errado em seu código, mas o que ele entende como um problema.

Fique atenta, porque este tipo de problema poderia ser evitado, ou mais facilmente localizado, se tivesse indentado corretamente o código.

Alinhe cada instrução 'for', 'if', 'else', 'while' com sua respectiva chave de fechamento, assim não perderá mais tempo caçando este tipo de problema.

Organizar as functions acima do corpo do código também ajuda a organizar.

<meta charset="UTF-8">

<input/>
<button> Compare com o meu segredo </button>

<script>


    function sorteia() {

        return Math.round(Math.random() * 10);
    }


    function sorteiaNumeros(quantidade) { 

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


    function verifica() {

        var achou = false;
        for (var posicao = 0; posicao < segredos.length; posicao++){
            if(input.value == segredos[posicao]) {
                alert("Você Acertou!");
                achou = true;
                break; 
            }
        }
        if(achou == false) {
            alert("Você Errou!!!");
        }
     input.value = "";
     input.focus();
    }

    var segredos = sorteiaNumeros(5);
    console.log(segredos);
    var input = document.querySelector("input"); 
    input.focus();

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

</script>

Bons estudos.