When I run on html the classification always shows Undefined, but when I run on the console it brings the answer of the _class variable can anyone help me?

Asked

Viewed 37 times

-3

<script type="text/javascript">
        //função que calculao IMC do paciente.
        function CalcImc(peso,altura){
        var imc = p/(a*a);
        return imc;

        }   //Entrada de dados e declaração de variaveis.
            var nome = prompt("Digite o seu nome:");
            var idade = parseFloat(prompt("Digite a sua idade:"));
            var p = parseFloat(prompt("Digite o seu peso:"));
            var a = parseFloat(prompt("Digite a sua altura:"));
            var _class;

            //invocando a função imc.
            CalcImc(p,a);
            //Imprimindo na tela as informações.
            document.write("===============<br>");
            document.write("CALCULO DE IMC<br>");
            document.write("===============<br>");
            document.write(`Paciente:${nome}<br>`);
            document.write(`Idade:${idade} anos<br>`);
            document.write(`Peso:${p}kg<br>`);
            document.write(`Altura:${a} metros<br>`);
            document.write(`Seu IMC é:${CalcImc(p,a)}<br>`);
            document.write(`Classificação:${_class}`);
            //Estrutura condicional que informa a classificação do paciente.
                if (CalcImc(p,a) < 18.5) {
                    _class = "Abaixo do Peso";

                }else if((CalcImc(p,a) == 18.5) && (CalcImc(p,a) <= 24.9)){
                    _class = "Peso normal";

                }else if ((CalcImc(p,a) == 25.0) && (CalcImc(p,a) <= 29.9)){
                    _class = "Sobrepeso";

                }else if((CalcImc(p,a) == 30.0) && (CalcImc(p,a) <= 34.9)){
                    _class = "Obesidade grau I";    

                }else if((CalcImc(p,a) == 35.0) && (CalcImc(p,a) <= 39.9)){
                    _class = "Obesidade grau II";   

                }else{
                    _class = "Obesidade grau III"; 

                }

    </script>

1 answer

2


You just need to change your line of code document.write(`Classificação:${_class}`); towards the end of its logical condition.

There your variable _class will already be filled.

 //função que calculao IMC do paciente.
    function CalcImc(peso,altura){
    var imc = p/(a*a);
    return imc;

    }   //Entrada de dados e declaração de variaveis.
        var nome = prompt("Digite o seu nome:");
        var idade = parseFloat(prompt("Digite a sua idade:"));
        var p = parseFloat(prompt("Digite o seu peso:"));
        var a = parseFloat(prompt("Digite a sua altura:"));
        var _class;

        //invocando a função imc.
        CalcImc(p,a);
        //Imprimindo na tela as informações.
        document.write("===============<br>");
        document.write("CALCULO DE IMC<br>");
        document.write("===============<br>");
        document.write(`Paciente:${nome}<br>`);
        document.write(`Idade:${idade} anos<br>`);
        document.write(`Peso:${p}kg<br>`);
        document.write(`Altura:${a} metros<br>`);
        document.write(`Seu IMC é:${CalcImc(p,a)}<br>`);

        //Estrutura condicional que informa a classificação do paciente.
            if (CalcImc(p,a) < 18.5) {
                _class = "Abaixo do Peso";

            }else if((CalcImc(p,a) == 18.5) && (CalcImc(p,a) <= 24.9)){
                _class = "Peso normal";

            }else if ((CalcImc(p,a) == 25.0) && (CalcImc(p,a) <= 29.9)){
                _class = "Sobrepeso";

            }else if((CalcImc(p,a) == 30.0) && (CalcImc(p,a) <= 34.9)){
                _class = "Obesidade grau I";    

            }else if((CalcImc(p,a) == 35.0) && (CalcImc(p,a) <= 39.9)){
                _class = "Obesidade grau II";   

            }else{
                _class = "Obesidade grau III"; 

            }
       document.write(`Classificação:${_class}`);
  • I understood, I had put Document.write(Classificação:${_class}); within each if condition, and it worked too, but with your reply I saw that only need to put at the end of all if’s that it will hold for all conditions and leaves the code cleaner, thank you very much a big hug.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.