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

como funciona la función return

podrían explicarme como funciona la función return, no me quedo muy claro como funciona :(

<meta charset="UTF-8">

<script> 

function saltarlinea(){

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

}

function imprimir(resultado){

    document.write("<big>" + resultado + "</big>");
    saltarlinea();

}

function Calcular(altura,peso){

    return (peso / (altura * altura));

}

    nombre = prompt("ingrese su nombre");
    peso = prompt("querido " + nombre + " por favor ingrese su peso");
    altura = prompt(nombre + " ahora ingresa tu altura");

    imc = Calcular(altura,peso);
    imprimir(nombre + " su imc es: " + imc);
</script>
2 respuestas
solución!

Para especificar el valor que retornará la función se utiliza la palabra "return" seguida de el valor que se desea devolver. En tu ejemplo vos necesitas que la función calcular te devuelva un valor, eso lo logras a través de la siguiente línea: "return (peso / (altura * altura));" .

Si vos NO le pusieras el return a esa función, ella va a realizar la siguiente acción "(peso / (altura * altura))" pero vos nunca podrías obtener el resultado. Es decir, en la siguiente línea: "imc = Calcular(altura,peso); " , el imc NO tendría valor asignado porque la función NO tiene el return. Entonces la funcion dice, no debo retornar nada.

Al vos colocar el return la función sabe que debe devolverte un valor, en este caso el valor es el resultado de: (peso / (altura * altura)); luego , imc va a recibir un valor al que vos después podes mostrar por pantalla a través del imprimir. Hace la prueba de sacarle el return a esa función y fíjate que pasa.

Ahora, si observamos las funciones saltarlinea o imprimir, estás no te devuelve un valor en sí, lo que hacen es realizar una acción que vos ves reflejada en el browser, pero en sí no hay valor que puedas obtener.

Hace la prueba de poner por ejemplo: resultado = saltarlinea( ), y vas a ver que resultado no tiene nada asignado, porque la función saltalinea( ) no retorna nada, ya que no tiene un return.

En la siguiente imagen, te dejo tu mismo código, solo que la primer función tiene el return y si te fijas te devuelve un valor, y ya la segunda función no tiene return y ya no te devuelve nada.

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Basicamente la funcion return hace que una funcion te devuelva lo q te tiene q de devolver, si vos haces una funcion sin return la funcion hace lo q tiene q hacer y no te devuelve nada, el return es lo q hace q la funcion te de una respuesta.