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

if e else

Estou com problemas/dúvidas. Estou com o seguinte código:

<nav class="testedesigno">
            <h1>Em qual dia e mês você nasceu?</h1>
            <form class="form">
                <div id="PreencheDia">
                    <label for="dia">Dia</label>
                    <input id="dia" type="number" required autofocus> 
                </div>

                <div id="PreencheMes">
                    <label for="mes">Mês</label>
                    <input id="mes" type="number" required> 
                </div>
            </form>
            <button id="Testar" type="submit">Testar</button>
        </nav>

e

            var form = document.querySelector('.form');
            var botao = document.querySelector('#Testar');

            botao.addEventListener("click", function() { //evento de click no botao 
                event.preventDefault();

                var dados = obtemDadosFormulario(form); //função que busca os dados do formulario
                console.log(dados); //e mostra no console

                var signo = VerSigno(dados); //função que testa qual é o signo 
            });


            function obtemDadosFormulario(form) {
                var dados = {
                    dia : form.dia.value,
                    mes : form.mes.value
                }
                return dados;
            }

            function VerSigno(dados) {
                if (mes == 1 || mes == 2 ) { //se o mês for igual a 1 ou 2 é de áquario
                    console.log('é aquario');
                }

                else { //se não for, é outro
                    console.log('outro');  
                }
            }

A minha intenção inicial era: se no if, o MES for igual a 1 ou 2, deve retornar no console que é aquário, mas se for 3, por exemplo, retorna que é outro. Estou tentando fazer esta parte funcionar para partir para o restante. Mas esse if sempre me retorna que é outro.

Alguém pode me ajudar?

3 respostas
solução!

Graziela, boa tarde!

Você precisa acessar o mês através do objeto que está sendo passado como parâmetro na função, que nesse caso é o parâmetro dados que possui o atributo mês, sendo assim para fazer a verificação dentro do if corretamente você precisa acessar assim:

function VerSigno(dados) {
                if (dados.mes == 1 || dados.mes == 2 ) { //se o mês for igual a 1 ou 2 é de áquario
                    console.log('é aquario');
                }

Espero ter ajudado e bons estudos!

Para você mostrar o signo, você precisaria também do dia, já que o intervalo de tempo dos signos não é o mês fechado.

Aqui tem um exemplo para você dar uma olhada:

http://www.javascriptkit.com/script/script2/zodiac3.shtml

Aqui existem outras formas de chegar no mesmo resultado:

https://codepen.io/ceciliayang/pen/xVEjvP

https://www.geeksforgeeks.org/program-display-astrological-sign-zodiac-sign-given-date-birth/

Era apenas um erro bobo....

Obrigada gente! Vocês conseguiram resolver meu problema.

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