Solucionado (ver solución)
Solucionado
(ver solución)
6
respuestas

Quise aplicar un poco de if else y todos arrojan como resultado el primer resultado. Como puedo solucionarlo_

<meta charset="utf-8">

<h1>Calculo del IMC</h1>

<script>
    var estdo = 1.80;
    var pesdo = 78;
    var estcar = 1.83;
    var pescar = 86;
    var estgla = 1.60;
    var pesgla = 120;
    var imc;

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

    function imprimir(contenido)
    {
        document.write(contenido)
        saltarlinea();
    }

    function calcularimc(peso,altura)
    {
        imc = peso / (altura*altura);
        imprimir(imc);
    }
    function resultado()
    {
        if (imc<18.5)
        {
            imprimir("<h1>Bajo peso</h1>")
            saltarlinea();
        }
        else if (18.5<imc<24.9)
        {
            imprimir("<h1>Peso normal</h1>")
            saltarlinea();
        }
        else if (25<imc<29.9)
        {
            imprimir("<h1>Sobrepeso</h1>")
            saltarlinea();
        }
        else if (30<imc)
        {
            imprimir("<h1>Obesidad</h1>")
            saltarlinea();
        }
    }

    imprimir("A continuacion veremos calcularemos el peso de 3 chicos, Dono, Carlos y Glaki.")

    imprimir("Dono mide " + estdo + " metros y pesa " + pesdo + " kilogramos.")

    imprimir("El IMC de Dono es:")

    calcularimc(pesdo,estdo);

    imprimir("Dono tiene:")

    resultado();

    imprimir("Carlos mide " + estcar + " metros y pesa " + pescar + " kilogramos.")

    imprimir("El IMC de Carlos es:")

    calcularimc(pescar,estcar);

    imprimir("Carlos tiene:")

    resultado();

    imprimir("Glaki mide " + estgla + " metros y pesa " + pesgla + " kilogramos.")

    imprimir("El IMC de Glaki es")

    calcularimc(pesgla,estgla);

    imprimir("Glaki tiene:")

    resultado();


</script>
6 respuestas

Hola ! Considero que es necesario nos muestres tu código para apoyarte en tu duda. Saludos !

Recuerda que para que se muestre en el foro debes seguir los siguientes pasos: https://youtu.be/tevEdARFxGU

Normalmente porque existe algo en el código que hace que siempre muestre las instrucciones de if y más no las de else, así los valores sean para que las muestre en else se muestran en if por algún error en las operaciones de comparación en la mayoría de los casos.

Una disculpa, desconocía esa función. Ya subi el código

solución!

hola, a la función resultado le deberías pasar el valor del imc para que pueda hacer la comparación, como lo tienes no le estas pasando ningún valor, es decir que cuando el va a hacer la comparación se encuentra con una variable no iniciada, es decir dentro de la función resultado imc no tiene ningún valor, o mejor tiene un valor de null, por eso siempre te va a dar menor que 18.5, no importa cuanto te de por fuera de la funcion.

saludos.

Lo que dice Julian es correcto, estas llamando a la función resultado() pero esta no recibe ningún parámetro, para solucionar esto debes agregar el parámetro entre los paréntesis (línea 32).

    function resultado(imc)

Ahora, dentro de la misma función no puedes comparar así: else if (18.5<imc<24.9)

En ese caso debes utilizar un operador lógico, recuerda que está el && que corresponde a and ó y y el || que corresponde a or ú o. Haz click aquí para leer más sobre los operadores lógicos.

Te dejo tu código completo y corregido:

<meta charset="utf-8">

<h1>Calculo del IMC</h1>

<script>
    var estdo = 1.80;
    var pesdo = 78;
    var estcar = 1.83;
    var pescar = 86;
    var estgla = 1.60;
    var pesgla = 120;
    var imc;

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

    function imprimir(contenido)
    {
        document.write(contenido)
        saltarlinea();
    }

    function calcularimc(peso,altura)
    {
        return peso / (altura*altura);
    }
    function resultado(imc)
    {
        if (imc < 18.5)
        {
            imprimir("<h1>Bajo peso</h1>")
            saltarlinea();
        }
        else if (18.5 < imc && imc < 24.9)
        {
            imprimir("<h1>Peso normal</h1>")
            saltarlinea();
        }
        else if (25<imc && imc < 29.9)
        {
            imprimir("<h1>Sobrepeso</h1>")
            saltarlinea();
        }
        else if (30<imc)
        {
            imprimir("<h1>Obesidad</h1>")
            saltarlinea();
        }
    }

    imprimir("A continuacion veremos calcularemos el peso de 3 chicos, Dono, Carlos y Glaki.")

    //

    imprimir("Dono mide " + estdo + " metros y pesa " + pesdo + " kilogramos.")

    var resultadoIMC = calcularimc(pesdo, estdo);
    imprimir("El IMC de Dono es: " + resultadoIMC);

    imprimir("Dono tiene:")

    resultado(resultadoIMC);

    //

    imprimir("Carlos mide " + estcar + " metros y pesa " + pescar + " kilogramos.")

    var resultadoIMC = calcularimc(pescar, estcar);
    imprimir("El IMC de Carlos es: " + resultadoIMC);

    imprimir("Carlos tiene:")

    resultado(resultadoIMC);

    //

    imprimir("Glaki mide " + estgla + " metros y pesa " + pesgla + " kilogramos.")

    var resultadoIMC = calcularimc(pesgla, estgla);
    imprimir("El IMC de Glaki es: " + resultadoIMC);

    imprimir("Glaki tiene:")

    resultado(resultadoIMC);


</script>

Espero haber sido útil, saludos!