Estamos de volta com nosso programa que usa uma função que desenha Winston 4 vezes
E eu alterei ela para que seja exibido sua idade em cada ponto da vida, logo veremos
Mas antes eu tenho que dizer algo: Winston é viciado em donuts
Ele come 3 deles por dia. Deve ser por isso que sua cara é grande e amarela.
Então, para alertar como os donuts são ruins para ele. E vou modificar este programa para mostrar quantos donuts ele comeu em cada ponto de sua vida
Por exemplo, quando ele tinha 2 anos, significa que ele comeu 3 vezes 365 vezes 2. 3 por dia, vezes 365 dias, vezes 2 anos.
E nós vamos mostrar bem abaixo do cabeçalho, entao wow! 2 mil donuts, é muito donuts para 2 anos de idade
Agora que ele tem 14 anos, vamos ver, 3 vezes 135 vezes 14
E isto é 15 mil donuts. Tudo bem, eu poderia continuar esta matemática, mas estou começando a perceber um padrão.
Estou repetindo meus cálculos aqui, só estou mudando uma coisa: os anos
Sempre que eu ver códigos repetidos como este, eu penso, "Hmm, posso transformar numa função?"
Yeah, definitivamente, podemos. Então vamos fazer agora.
Definirei minha função aqui e chamarei de calcTotalDonuts igual function
E ela receberá um parâmetro, o número de anos, porque esta é a única coisa que muda sempre
E então dentro, nós calcularemos, e guardamos numa variável, então será 3 vezes 365 vez numYears
Ok, agora que temos a função, vamos substituir a expressão aqui com calcTotalDonuts - para chamar a função - passando 2.
Ok, nós não vemos o total.
Hmm, ok, o que aconteceu? Bem, nossa função calculou o total, aqui, mas não disse pra ninguém qual foi o total
É como se um professor perguntasse algo para você e a resposta estivesse em sua cabeça, mas você é muito tímido pra dizer a resposta.
Você fez o trabalho, mas seu professor nunca saberá
Se quisermos que a função comunique-se com quem a chamou, a função deve explicitamente retornar o valor
Para a função retornar um valor, precisamos escrever return, e então o que quisermos retornar. Talvez seja uma variável ou o resultado de uma expressão.
então aqui vamos colocar return totalDonuts, ok? Então quem chamar esta função irá pegar esta resposta
E agora nosso valor é exibido, yay!
Agora podemos encurtar nossa função, nós nem precisamos guardar o valor numa variável, podemos simplesmente pegar esta expressão inteira.
colocar no return, e então ela só terá uma linha, Linda.
Ok, agora podemos prosseguir e calcular o total de donuts em cada ponto da vida chamando esta função e passando o numéro de anos.
Um, vamos ver ,é calcTotalDonuts(25), posição correta, calcTotalDonuts(65)
Ok! Wow, então se ele fizer 65, terá comido 70.000 donuts. É muito donuts.
Eu acho que Winston não conseguirá[risos]
Mas agora que fizemos numa função, é realmente fácil alterar partes dela
Como se Winston olhasse e dissesse "Woah, woah, é muito! E se eu comesse uma por dia?"
Ok, nós podemos vir aqui, alterar este número e ver tudo mudar.
Então será 23.000.Ainda é muito. Então talvez Winston diga "Ok, ok, e se eu tivesse uma por dia? Yeah, isto é razoável, ok.
Então, nós poderíamos alterar 365 para 50, porque temos 50 semanas no ano, certo?
Ok, é muito melhor certo? 3.000 donuts, parece razoável.
Ok, então se você ver, com funções e valores de retorno, nós podemos salvar códigos e vidas