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.