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

O que tem de errado com meu código? Alguém poderia me ajudar? Atualizo e não aparece nada!

Deixei ele mais completinho, já revisei mil vezes e não sei pq quando atualizo fica totalmente em branco.

Edit: na vdd mudei ele daquela forma com && que fica mais enxuto e funcionou. Porém achei que fosse opicional. Necessariamente tem que ser escrito daquela forma? Vou colocar oq fiz de diferente no código nos comentários.

<meta charset="UFT-8">

<script>

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

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

    function calculaImc(altura, peso) {

        return peso / (altura * altura);
    }

    var nome = prompt("Infome seu nome");
    var alturaInformada = prompt(nome + ", infome sua altura");
    var pesoInformado = prompt(nome + ", infome seu peso");
    var imc = calculaImc(alturaInformada, pesoInformado);

    mostra(nome + ", o seu IMC é: " + imc);


    if(imc < 18.5) {

        mostra("Você está abaixo do recomendado.");
    }

    if(imc > 18.5) {
        if(imc <= 24.9) {
            mostra("Você está com o peso ideal de acordo com a OMS.");
        }

    if(imc >= 25) {
        if(imc <=29.9) {
            mostra("Você está levemente acima do peso.");
        }

    if(imc >= 30) {
        if(imc <= 34.9) {
            mostra("Atenção: obesidade grau I.");
        }

    if(imc >= 35) {
        if(imc <= 39.9) {
            mostra("Atenção: obesidade grau II (severa).");
        }

    if(imc > 40) {
            mostra("Atenção: obesidade grau III (mórbida).");
        }


</script>
3 respostas

Código atualizado:

<meta charset="UFT-8">

<script>

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

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

    function calculaImc(altura, peso) {

        return peso / (altura * altura);
    }

    var nome = prompt("Infome seu nome");
    var alturaInformada = prompt(nome + ", infome sua altura");
    var pesoInformado = prompt(nome + ", infome seu peso");
    var imc = calculaImc(alturaInformada, pesoInformado);

    mostra(nome + ", o seu IMC é: " + imc);


    if(imc < 18.5) {

        mostra("Você está abaixo do recomendado.");
    }


    if(imc >= 18.5 && imc <=24.9) {

            mostra("Você está com o peso ideal de acordo com a OMS.");
        }


    if(imc >= 25 && imc <=29.9) {

            mostra("Você está levemente acima do peso.");
        }


    if(imc >= 30 && imc <= 34.9) {

            mostra("Atenção: obesidade grau I.");
        }


    if(imc >= 35 && imc <= 39.9) {

            mostra("Atenção: obesidade grau II (severa).");
        }


    if(imc > 40) {

            mostra("Atenção: obesidade grau III (mórbida).");
        }


</script>
solução!

Oi Maria, tudo bem? Então, parece que você usou alguns IF's encadeados e faltou fechar o alguns blocos

Exemplo

// Esse é um dos IF's que você adicionou
if(imc > 18.5) {
    if(imc <= 24.9) {
        mostra("Você está com o peso ideal de acordo com a OMS.");
     }

Se você reparar, falta colocar uma }. O correto seria assim

if(imc > 18.5) {
    if(imc <= 24.9) {
        mostra("Você está com o peso ideal de acordo com a OMS.");
     }
}

Olá, Maria

Você esqueceu das chaves para cada comparação principal.

Para ver erro acesse o console do navegador teclando F12.


if(imc > 18.5) {
    if(imc <= 24.9) {
        mostra("Você está com o peso ideal de acordo com a OMS.");
    }

if(imc >= 25) {
    if(imc <=29.9) {
        mostra("Você está levemente acima do peso.");
    }

if(imc >= 30) {
    if(imc <= 34.9) {
        mostra("Atenção: obesidade grau I.");
    }

if(imc >= 35) {
    if(imc <= 39.9) {
        mostra("Atenção: obesidade grau II (severa).");
    }