-
Estamos de regreso con nuestro programa que usa una función
-
para dibujar a "Winston" cuatro veces.
-
Y la he cambiado para mostrar en realidad de qué edad es
-
en cada etapa de su vida, y pronto verás por qué.
-
Pero primero necesito decirles algunas cosas sobre "Winston":
-
"Winston" tiene una adicción a las donas.
-
Se come tres al día.
-
Probablemente por eso es que tiene esa cara tan grande y amarilla.
-
Así que para advertir a "Winston" sobre lo malo que son las donas para él,
-
quiero modificar este programa para mostrar cuantas donas
-
en total se ha comido en cada etapa de su vida.
-
Por ejemplo, cuando él tenía dos años de edad,
-
eso significa que se había comido 3 por 365 por 2,
-
tres por día, por 365 días por 2 años.
-
Y sólo tendremos que mostrarlo debajo de ese encabezado, ¡wow!
-
Dos mil donas, esas son muchas donas para un niño de dos años.
-
Ahora, cuando tenía 14 años, déjenme ver, se había comido 3 por 365 por 14,
-
y esas son 15,000 donas. Muy bien.
-
Entonces podría continuar haciendo estos cálculos, pero empiezo a darme cuenta de que hay un patrón.
-
Estoy repitiendo mis cálculos aquí,
-
y sólo estoy cambiando una cosa: el número de años.
-
Cuando veo que un código se repite como éste,
-
Pienso: "Mmm, ¿podré hacer una función con esto?".
-
Sí, definitivamente, podemos. Así que hagámoslo.
-
Voy a definir mi función aquí arriba
-
y llamarla "calcTotalDonuts = function"
-
Y va a necesitar un parámetro, el número de años,
-
porque ésta es la única cosa que estamos cambiando
-
cada vez que hacemos este cálculo.
-
Y luego, dentro, haremos el cálculo,
-
y lo salvaremos en una variable, así que será 3 por 365 por "numYears" (número de años).
-
Muy bien, entonces ahora que tenemos esa función,
-
voy a reemplazar esta expresión aquí con "calcTotalDonuts",
-
la llamada a la función, y voy a pasar el parámetro "2".
-
Ok, bueno ahora no vemos ningún total.
-
Mmm, ok, ¿qué pasó?
-
Bueno, nuestra función hizo el cálculo del total, aquí,
-
pero no le dijo a nadie sobre ese total.
-
Es como si un maestro te hiciera una pregunta en clase,
-
y tú la contestas en tu mente
-
pero eres muy tímido para decir la respuesta.
-
Has hecho el trabajo, pero tu maestra nunca lo va a saber.
-
Si queremos que una función comunique un valor
-
cada que es llamada, la función tiene que regresar el valor explícitamente.
-
Así que para que una función regrese el valor necesitamos teclear "Return",
-
y lo que debe regresar.
-
Puede ser una variable, un valor o una expresión,
-
así que aquí diremos: "return totalDonuts", ¿está bien?
-
Entonces quien llamó la función tendrá esta respuesta.
-
¡Y ahora podemos ver nuestro resultado!
-
Y en realidad podemos acortar nuestra función,
-
no tenemos que almacenar todo esto en una variable,
-
podemos tomar esta expresión que tenemos aquí
-
y ponerla en el "return", y entonces la tenemos en una sola línea. Genial.
-
Muy bien, ahora podemos avanzar
-
y calcular el total de donas en cada etapa de la vida
-
sólo llamando esta función y pasándole el número de años.
-
Déjenme ver, es "calcTotalDonuts(25)",
-
la posición es correcta, "calcTotalDonuts(65)",
-
¡Muy bien! Wow, si lo sigue haciendo hasta los 65,
-
se habrá comido 70,000 donas. Son muchas donas.
-
No creo que "Winston" lo haga.
-
Pero ahora que lo hemos hecho con una función,
-
realmente es fácil cambiar alguna de las partes.
-
Si "Winston" ve esto y dice:
-
"Vaya, es mucho, ¿qué tal si sólo como una dona al día?"
-
Ok, bueno podemos ir justo aquí y cambiar este número,
-
y vemos que todo cambia.
-
Ahora son 23,000. Todavía es mucho. Así que tal vez "Winston" diga:
-
"Está bien, ¿qué tal si sólo como una a la semana?"
-
Sí, eso es razonable, ok.
-
Entonces sólo cambiamos 365 por 50,
-
porque un año tiene como 50 semanas, ¿cierto?
-
Ok, eso está mucho mejor, ¿cierto?
3,000 donas, eso parece razonable.
-
Muy bien, así que como ves, con funciones y regresando valores,
-
podemos ahorrar código y salvar vidas.