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

Programa qual o seu signo?

Estou tentando criar um programa para treinar que tem como objetivo mostrar qual o signo mediante ao cadastro do mes e do dia de nascimento. Porem nao consigo nem rodar o programa porque o console esta me dando um erro de sintaxe que nao estou entendendo. Ja olhei linha a linha e nao consigo identificar o erro. Alguem pode me ajudar? De quebra se puder dar uma olhada se a logica esta correta me ajuda bastante tambem.

    var nome = prompt("Qual o seu nome?");

    var mesInformado = parseInt(prompt(nome + "Qual o mes do seu nascimento? (informe de forma numerica)"));

        var diaDeNascimento = parseInt(prompt(nome + "Qual o dia do seu nascimento? "));

        var mesJaneiro = ("Capricornio");
        var mesFevereiro = ("Aquario");
        var mesMarco = ("Peixes");
        var mesAbril = ("Aries");
        var mesMaio = ("Touro");
        var mesJunho = ("Gemeos");
        var mesJulho = ("Cancer");
        var mesAgosto = ("Leao");
        var mesSetembro = ("Virgem");
        var mesOutubro = ("Libra");
        var mesNovembro = ("Escorpiao");
        var mesDezembro = ("Sagitario");

        var mesDoSigno = 0;
        var ano = 12;


        while(mesInformado <= ano){

            if(mesInformado == 1 && diaDeNascimento <= 19){

                alert("Seu signo e " + mesJaneiro);
            }else{

                if(mesInformado == 2 && diaDeNascimento <= 18){

                    alert("Seu signo e " + mesFevereiro);
                }}else{

                    if(mesInformado == 3 && diaDeNascimento <= 20){

                        alert("Seu signo e " + mesMarco);

                    }}else{

                        if(mesInformado == 4 && diaDeNascimento <= 19){

                            alert("Seu signo e " + mesAbril);
                        }}else{

                            if(mesInformado == 5 && diaDeNascimento <= 20){

                                alert("Seu signo e " + mesMaio);
                            }}else{

                                if(mesInformado == 6 && diaDeNascimento <= 20){

                                    alert("Seu signo e " + mesJunho);
                                }}else{

                                    if(mesInformado == 7 && diaDeNascimento <= 22){

                                        alert("Seu signo e " + mesJulho);

                                    }}else{

                                        if(mesInformado == 8 && diaDeNascimento <= 22){

                                            alert("Seu signo e " + mesAgosto);
                                        }}else{

                                            if(mesInformado == 9 && diaDeNascimento <= 22){

                                                alert("Seu signo e " + mesSetembro);
                                            }}else{

                                                if(mesInformado == 10 && diaDeNascimento <= 22){

                                                    alert("Seu signo e " + mesOutubro);
                                                }}else{

                                                    if(mesInformado == 11 && diaDeNascimento <= 21){

                                                        alert("seu signo e " + mesNovembro);
                                                    }}else{

                                                        if(mesInformado == 12 && diaDeNascimento <= 21){

                                                            alert("seu signo e " + mesDezembro);
                                                        }}

                                                    }

                                                              alert("FIM");


</script>
6 respostas

Bom dia Andre beleza? pode postar qual erro esta dando no console?

Oi tudo bem? posso sim. qual_seu_signo.html:49 Uncaught SyntaxError: Unexpected token else.

Nao encontrei nenhum erro de sintaxe, mas como estou aprendendo, com certeza eu e que nao estou enxergando.

André, uma possível correção para seu código javascript seria:

var nome = prompt("Qual o seu nome?");

var mesInformado = parseInt(prompt(nome + "Qual o mes do seu nascimento? (informe de forma numerica)"));

var diaDeNascimento = parseInt(prompt(nome + "Qual o dia do seu nascimento? "));

var mesJaneiro = ("Capricornio");
var mesFevereiro = ("Aquario");
var mesMarco = ("Peixes");
var mesAbril = ("Aries");
var mesMaio = ("Touro");
var mesJunho = ("Gemeos");
var mesJulho = ("Cancer");
var mesAgosto = ("Leao");
var mesSetembro = ("Virgem");
var mesOutubro = ("Libra");
var mesNovembro = ("Escorpiao");
var mesDezembro = ("Sagitario");

var mesDoSigno = 0;
var ano = 12;


while(mesInformado <= ano){

    if(mesInformado == 1 && diaDeNascimento <= 19) {
        alert("Seu signo e " + mesJaneiro);
        break;
    }

    else if(mesInformado == 2 && diaDeNascimento <= 18) {
        alert("Seu signo e " + mesFevereiro);
        break;
    }

    else if(mesInformado == 3 && diaDeNascimento <= 20) {
        alert("Seu signo e " + mesMarco);
        break;
    }

    else if(mesInformado == 4 && diaDeNascimento <= 19) {
        alert("Seu signo e " + mesAbril);
        break;
    }

    else if(mesInformado == 5 && diaDeNascimento <= 20) {
        alert("Seu signo e " + mesMaio);
        break;
    }

    else if(mesInformado == 6 && diaDeNascimento <= 20) {
        alert("Seu signo e " + mesJunho);
        break;
    }

    else if(mesInformado == 7 && diaDeNascimento <= 22) {
        alert("Seu signo e " + mesJulho);
        break;
    }

    else if(mesInformado == 8 && diaDeNascimento <= 22) {
        alert("Seu signo e " + mesAgosto);
        break;
    }    

    else if(mesInformado == 9 && diaDeNascimento <= 22) {
        alert("Seu signo e " + mesSetembro);
        break;
    }

    else if(mesInformado == 10 && diaDeNascimento <= 22) {
        alert("Seu signo e " + mesOutubro);
        break;
    }

    else if(mesInformado == 11 && diaDeNascimento <= 21) {
        alert("seu signo e " + mesNovembro);
        break;
    }

    else if(mesInformado == 12 && diaDeNascimento <= 21) {
        alert("seu signo e " + mesDezembro);
        break;
    }
}

alert("FIM");

Era alguns erros de fechamento de } chaves no if, que estão assim }} duplicadas, e também vários elses seguidos, no caso como você está fazendo uma nova condição, o ideal seria usar if else() no lugar de vários else.

Abraço, espero ter ajudado.

Muito obrigado Fabio! Mas voce achou que a logica e o processo que eu usei estavam corretos em partes?

solução!

Existe sim jeito melhor para chegar a esse resultado, como por exemplo não usar esse tanto de variável. Tentar algo como um array de meses, e um de signos. Ou talvez um objeto, você tem que testar qual tem mais performance dentro do seu código.

Abraço Andre! Não esqueça de marcar o tópico como "Solucionado"

Puxa, estou aprendendo array agora e objetos nem vi isso ainda! Fiz com as ferramentas disponiveis que eu tinha. Mas estou vendo array agora e pretendo arrumar isso. Obrigado Fabio.