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

Uncaught SyntaxError: Unexpected end of input - Não encontro meu erro!

Não estou encontrando meu erro! hahahahahaha socorro!

<meta charset="UTF-8">
<script>

    function pulaLinha() {

        document.write("<br>");
    }

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
    }

    function sorteia (n) {

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

    var numeroPensado = sorteia (n)


    var chute = parseInt(prompt("Já pensei. Qual você acha que é?"));

    if(chute == numeroPensado) {

        mostra("Uau! Você acertou, pois eu pensei no " + numeroPensado);
    } else {

        if(chute<numeroPensado){

            mostra("Você errou! Seu chute é menor que o número pensado!");
    } else {

        if(chute>numeroPensado){

            mostra("Você errou! Seu chute é maior que o numero pensado!")
        }
    }
</script>
4 respostas

Olá Thiago, tudo bem ?

Vou comentar alguns pontos do seu código para que você veja com mais clareza...

<meta charset="UTF-8">
<script>
    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }

    function sorteia (n) {
        return Math.round(Math.random() * n);
/* no lugar de n você deveria declarar 10, para pegar as casas decimais */
    }

    var numeroPensado = sorteia (n)
/* aqui você deveria apenas chamar a função, pois já fez a atribuição do Math.random */

var chute = parseInt(prompt("Já pensei. Qual você acha que é?"));

    if(chute == numeroPensado) {
        mostra("Uau! Você acertou, pois eu pensei no " + numeroPensado);
    } else {

/* ponto importantíssimo, tu declarou que se algo é verdadeiro (true) o outro consequentemente sera falso (else), mas você colocou um if dentro de um else, por isso o erro */

        if(chute<numeroPensado){
            mostra("Você errou! Seu chute é menor que o número pensado!");
    } else {

        if(chute>numeroPensado){
            mostra("Você errou! Seu chute é maior que o numero pensado!")
        }
    }
</script>

Seu código corrigido fica assim:

Eu comentei os pontos que encontrei os erros pra te mostrar com mais clareza.

<meta charset="UTF-8">
<script>

    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }

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

    var numeroPensado = sorteia () 
/* apenas chamei a função */

 console.log(numeroPensado);
/*dei um consolelog pra tu testar no console do navegador */

    var chute = parseInt(prompt("Já pensei. Qual você acha que é?"));

/* aqui eu apenas apaguei os itens duplicados */
    if(chute == numeroPensado) {
        mostra("Uau! Você acertou, pois eu pensei no " + numeroPensado);
    } else {
            mostra("Você errou! Seu chute é menor que o número pensado!");
        } 
</script>

Espero ter ajudado!

Abraço!

solução!

Boa noite, Thiago! Como vai?

Cheguei para te tirar dessas densas trevas!

Veja que vc escreveu

if(chute == numeroPensado) {

     mostra("Uau! Você acertou, pois eu pensei no " + numeroPensado);
} else {

     if(chute<numeroPensado){

          mostra("Você errou! Seu chute é menor que o número pensado!");
     } else {

          if(chute>numeroPensado){

               mostra("Você errou! Seu chute é maior que o numero pensado!")
          }
     }

contudo, o correto seria

if(chute == numeroPensado) {

     mostra("Uau! Você acertou, pois eu pensei no " + numeroPensado);
} else {

     if(chute<numeroPensado){

          mostra("Você errou! Seu chute é menor que o número pensado!");
     } else {

          if(chute>numeroPensado){

               mostra("Você errou! Seu chute é maior que o numero pensado!")
          }
     }
} // Faltou essa chave!

O erro que vc citou ocorre devido a falta da chave que eu destaquei! Faça essa correção e verifique se as coisas funcionam como vc esperava!

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Tinham 2 erros no seu código:

Primeiro estava faltando fechar um chave de um if()

E o segundo é que quando você chama a função sorteia()

var numeroPensado = sorteia (n)

Você esta passando como parâmetro para a função sorteia() um simples 'n' que não foi definido nem declarado nenhum valor a ele, assim sua função lança um erro.

No lugar do 'n' você precisa passar um numero que vai ser recebido como parâmetro para pode sortear seu numero aleatório (ex. 5)

Seu código fica assim:

function pulaLinha() {

    document.write("<br>");
}

function mostra(frase) {

    document.write(frase);
    pulaLinha();
}

function sorteia (n) {

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

var numeroPensado = sorteia (5)


var chute = parseInt(prompt("Já pensei. Qual você acha que é?"));

if(chute == numeroPensado) {
    mostra("Uau! Você acertou, pois eu pensei no " + numeroPensado)
} else {
    if(chute<numeroPensado){
        mostra("Você errou! Seu chute é menor que o número pensado!");
    } else {
        if(chute>numeroPensado){
            mostra("Você errou! Seu chute é maior que o numero pensado!")
        }
    }
}

Obrigado a todos pelos pontos comentados, foi extremamente relevante pra mim!

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