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

Dúvida: else

Olá pessoal !!! Podem me responder porque neste código quando coloco o sexo M está saindo além do resultado a mensagem sexo inválido ??? Isso não acontece quando o sexo é F.

 <meta charset="utf-8">

<script>

    function pulaLinha() {

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

    function mostra(frase){

        document.write("<big>" + frase + "</big>");
        pulaLinha();
    }

    var sexo = prompt("Informe o sexo M/F");

    if ( sexo == "M") {

        var altura = prompt("Informe sua altura")*1;
        pesoIdeal = (72.7 * altura) - 58;
        mostra("Seu peso ideal é: " + pesoIdeal);
    }

    if (sexo == "F") {

        var altura = prompt("Informe sua altura")*1
        pesoIdeal = (62.1 * altura) - 44.7;
        mostra("Seu peso ideal é: " + pesoIdeal);
    } else {

        mostra("Sexo inválido");
    }


</script>
3 respostas
solução!

Oi, Fabricio, tudo bem?

Vamos compreender primeiro como funciona o if...else. No seu código acima intertpretei que você criou 3condições de possibilidade de entrada do seu usuário: 1- M, 2-F e outro valor inválido. Com uma estrutura como essa:

if (condição1) //premissa 1
   instrução1
else if (condição2)// premissa2
   instrução2
else
   instruçãoN

Ou seja, se não for Masculino (primeira condição) ele irá entrar na segunda condição que é a Feminina, no outro if e, por isso, precisa ser else if, porque você está dando mais do que duas possibilidades. Quando não for nem M* e nem *F a estrutura de repetição irá entrar na última instrução (que não tem condição).

Então, no seu código faremos assim:

if ( sexo == "M") {

        var altura = prompt("Informe sua altura")*1;
        pesoIdeal = (72.7 * altura) - 58;
        mostra("Seu peso ideal é: " + pesoIdeal);
    }

    else if (sexo == "F") {

        var altura = prompt("Informe sua altura")*1;
        pesoIdeal = (62.1 * altura) - 44.7;
        mostra("Seu peso ideal é: " + pesoIdeal);
    } else {

        mostra("Sexo inválido");
    }

E faltou o ; na primeira linha da segunda instrução:

var altura = prompt("Informe sua altura")*1;

Espero ter te ajudado e bons estudos!

Laís, obrigado pela explicação, ficou bem mais claro agora.

Que bom que esclareceu :}