Aquí estamos, con un programa que usa una
función para dibujar a Winston 4 veces.
Y lo he modificado para mostrar su edad
en cada momento, pronto verás por qué.
Pero antes, necesito decirte algo sobre
Winston: tiene una adicción a los dónuts.
Toma tres cada día. Por eso probablemente
su cara es tan grande y amarilla.
Así, para decirle a Winston lo malos que son
para él, quiero modificar este programa para
mostrar el total de dónuts en cada momento.
Por ejemplo, si tiene dos años, esto supone que
ha comido tres veces 365 por dos, es decir,
tres cada día, 365 veces, durante dos años.
Lo mostraremos bajo la cabecera. Vaya! Dos
mil dónuts, que es un montón para 2 años.
Así, cuando tenga 14 años, veamos, habrá
tomado 3 veces 365 por 14.
Eso hace 15 mil dónuts. Bien. Puedo seguir
calculando, pero intuyo una estructura.
Estoy repitiendo mis cálculos y sólo
cambio una cosa: el número de años.
Siempre que veo repetirse código así,
pienso si podré convertirlo en una función.
Sí. por supuesto, es posible. Así que,
hagámoslo ahora.
Definiré aquí mi función y la llamaré
calcTotalDonuts igual a function.
Va a tener un parámetro, el número de años,
que es lo único que cambiaremos cada vez.
Y ahora dentro, hacemos el cálculo y lo
guardamos en una variable. que será tres veces
365 por el número de años.
Bien, ahora que tenemos la función, voy a
reemplazar esta expresión por calcTotalDonuts (la
llamada a la función) con el parámetro "2".
Bien, pero ahora no vemos ningún resultado.
¿Qué ha ocurrido? Vale, nuestra función calculó
el total, pero no le pasó el dato a nadie.
Es como si un profesor te pregunta y sabes
la respuesta, pero eres tan tímido que no la dices.
Has hecho el trabajo, pero tu profesor
nunca lo sabrá.
Si queremos que la función informe a quien la
llama, debe devolver el valor de forma explícita.
Para que una función devuelva el resultado,
escribiremos "return" y lo que debe devolver:
una variable, un valor o una expresión.
así que pondremos "return totalDonuts". Con
lo que al llamar a esta función dará este valor.
¡Ahora se muestra nuestro resultado!
Realmente podemos abreviar la función, sin
siquiera usar una variable, poniendo la expresión
con "return" y ya sólo es una línea. Vale.
Bien, ahora podemos seguir y calcular el
total de dónuts en cada momento llamando a
la función y pasándole el número de años.
Veamos, calcTotalDonuts(25), en la posición
correcta, calcTotalDonuts(65).
¡Bien! Esto hace que a los 65 haya comido
70 000 dónuts. ¡Es un montón de dónuts!
No creo que Winston lo consiga. [risas]
Pero ahora que hemos creado una función,
es muy fácil cambiarla.
Si Winston lo ve y dice "¡Vaya! Es mucho.
¿Qué tal si sólo como uno al día?"
Bien, sólo tenemos que ir aquí, cambiar
este número, y ver cómo todo cambia.
Ahora son 23 000. Todavía muchos. Así que
Winston puede decir "¡Vale! ¿Y si sólo tomo
uno por semana?". Sí, eso es razonable.
Sólo tenemos que cambiar 365 por 50, ya
que hay unas 50 semanas en un año, ¿vale?
Bien, esto es mucho mejor. 3 000 dónuts
parece razonable.
Como veis, con funciones y resultados
podemos ahorrar código y salvar vidas.