What I’m missing in this Form Calculating IMC in Javascript

Asked

Viewed 145 times

-1

   <script type="text/javascript">

     function calcula_imc(){
        var altura = document.imcForm.altura.value;
        var peso = document.imcForm.peso.value;

         var quadrado = (altura*altura);

         var calculo = (peso/quadrado);
     }

       if (calculo<18.5){
           alert("Abaixo do Peso "+calculo);
       }
       else if (calculo>=18.6 && calculo<24.9){
           alert("Peso ideal (Parabéns) "+calculo);
       }
       else if (calculo>=25 && calculo<29.9){
           alert("Levemente acima do peso "+calculo);
       }
       else if (calculo>=30 && calculo<34.9){
           alert("Obesidade grau I "+calculo);
       }
       else if (calculo>=35 && calculo<39.9){
           alert("Obesidade grau II(Severa) "+calculo);
       }
       else if (calculo>40){
           alert("Obesidade grau III(Mórbida) "+calculo);
       }

   </script>

2 answers

3

The "}" key that closes the function is positioned before the end of the function content:

function calcula_imc(){
    var altura = document.imcForm.altura.value;
    var peso = document.imcForm.peso.value;

     var quadrado = (altura*altura);

     var calculo = (peso/quadrado);
 } <<---- fechamento da função

Place the key at the end of the code so that all its contents are within the said function:

function calcula_imc(){
    var altura = document.imcForm.altura.value;
    var peso = document.imcForm.peso.value;

     var quadrado = (altura*altura);

     var calculo = (peso/quadrado);

   if (calculo<18.5){
       alert("Abaixo do Peso "+calculo);
   }
   else if (calculo>=18.6 && calculo<24.9){
       alert("Peso ideal (Parabéns) "+calculo);
   }
   else if (calculo>=25 && calculo<29.9){
       alert("Levemente acima do peso "+calculo);
   }
   else if (calculo>=30 && calculo<34.9){
       alert("Obesidade grau I "+calculo);
   }
   else if (calculo>=35 && calculo<39.9){
       alert("Obesidade grau II(Severa) "+calculo);
   }
   else if (calculo>40){
       alert("Obesidade grau III(Mórbida) "+calculo);
   }
}

1

It should be noted that the question was edited, not by the author, and that can change the interpretation of it.

Original question:

What I’m missing in this Form Calculating IMC in Javascript

Exerc_2_functions

If the intention is to use two functions Exerc_2_Funcoes call the second function result_imc() when performing the first function calcula_imc().

function calcula_imc(){
    var altura = document.imcForm.altura.value;
    var peso = document.imcForm.peso.value;

     var quadrado = (altura*altura);

     calculo = (peso/quadrado);
     //chama a função 
     result_imc();
}     

     
function result_imc(){
   if (calculo<18.5){
       alert("Abaixo do Peso "+calculo);
   }
   else if (calculo>=18.6 && calculo<24.9){
       alert("Peso ideal (Parabéns) "+calculo);
   }
   else if (calculo>=25 && calculo<29.9){
       alert("Levemente acima do peso "+calculo);
   }
   else if (calculo>=30 && calculo<34.9){
       alert("Obesidade grau I "+calculo);
   }
   else if (calculo>=35 && calculo<39.9){
       alert("Obesidade grau II(Severa) "+calculo);
   }
   else if (calculo>40){
       alert("Obesidade grau III(Mórbida) "+calculo);
   }
} 
<form name="imcForm">
<input type="text" name="altura">
<input type="text" name="peso">
<input type="submit" onclick="calcula_imc()">
</form>

  • I just find it odd that this communication via variable calculo, it doesn’t seem natural

  • 1

    Be aware of not declaring this variable calculo not to make a mistake :)

Browser other questions tagged

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