When I squeeze in html the rating always shows undefined, but when I squeeze in the console it brings the response of the variable _class can anyone help me?

-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>
    
asked by anonymous 13.12.2018 / 15:33

1 answer

2

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

Then 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}');
    
13.12.2018 / 15:51