Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
3
respuestas

Duda: cuando usar return en una funcion ?

Buenas, estoy en la clase Calculando IMC de Logica de programacion 1 - modulo 5

Me quedo la duda luego de ver el video de cuando es correcto o necesario usar el comando return() que Christian usa primero en el video y luego saca una ves que agrega "imprimir"

si hago esto por ejemplo me dice que el imc de Christian es undefined y el resto bien, sin embargo si agrego return(imc) a la funcion calcularImc ahi me calcula bien el de Christian pero borra el resto directamente, que estoy haciendo mal ?:

<h1>Programa IMC </h1>

<script>






    function saltarlinea() {


    document.write("<br>")
    document.write("<br>")

};


    function escribir(frase){ 

        document.write(frase)
        saltarlinea();
 };


function calcularImc(peso,altura){


    imc = peso / (altura * altura);

    escribir("el Imc calculado es " + imc);
};

     pesoChristian = 71;
     alturaChristian = 1.72;

     imcChristian = calcularImc(pesoChristian,alturaChristian);

     escribir("el IMC de Christian es " + imcChristian);
     calcularImc(82,1.86);


</script>

Este es el resultado en Chrome sin el return(imc):

Programa IMC
el Imc calculado es 23.99945916711736

el IMC de Christian es undefined

el Imc calculado es 23.702162099664697**

Muchas gracias desde ya a cualquier persona que se tome el tiempo de contestar

3 respuestas

En tu funcion calcularImc no regresa nada, no tiene el return, e imprimes el resultado directamente. Por eso, en esta parte del codigo:

imcChristian = calcularImc(pesoChristian,alturaChristian);

calcularImc no regresa nada y por eso imcChristian no esta definido (undefined).

solución!

Hola Alberto, concretamente a tu consulta respecto del "return" en la funcion, la diferencia es que si no esta, la funcion no devuelve ningun valor (es lo que en otros lenguajes se llama un procedimiento). Respecto de tu codigo, hay varias cosas para cambiar. Por empezar declara las variables antes de usarlas con "var", es parte de las buenas practicas. Luego la funcion calcularImc debe calcular el imc y no imprimirlo (eso se hace en el cuerpo principal). Entonces al no poner el return, imcChristian no va a contener el valor calculado (de ahi el undefined/indefinido). En resumen: -declarar variables -sacar "escribir" de la funcion y agregar "return imc". Con eso va a funcionar todo. Saludos

Gracias a los dos por la ayuda y los consejos, Carlos me funciono perfecto con los cambios !