Módulo 8 - Funções que valem ouro
Retornar não é imprimir: o valor que volta
9 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 08/07/2026
O que você vai aprender
- Diferenciar imprimir (mostrar na tela) de retornar (devolver um valor).
- Usar o valor retornado por uma função em outra expressão.
- Reconhecer por que uma função que só imprime é limitada.
- Evitar o erro de esperar um resultado de uma função que só imprime.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Retornar não é imprimir: o valor que volta.
Os objetivos desta aula. Diferenciar imprimir (mostrar na tela) de retornar (devolver um valor). Usar o valor retornado por uma função em outra expressão. Reconhecer por que uma função que só imprime é limitada. Evitar o erro de esperar um resultado de uma função que só imprime.
Veja o essencial, parte por parte.
Duas saídas bem diferentes. Imprimir mostra na tela, para a PESSOA ver. Retornar devolve um valor para o PROGRAMA usar.
Usar o valor que volta. Quando uma função retorna um valor, a chamada dela vira, na prática, esse valor.
Quando imprimir e quando retornar. A regra prática é clara e vale a pena adotar.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
Duas saídas bem diferentes
Aqui está a distinção que, quando cai a ficha, muda a forma de programar. Imprimir e retornar parecem parecidos porque os dois lidam com o resultado de uma função, mas eles conversam com destinatários diferentes. Imprimir é falar com a pessoa que olha a tela: escreva o total mostra o número para o usuário ler. Retornar é falar com o resto do programa: retorne o total devolve o número para que outra parte do código o use numa nova conta. A diferença fica clara com uma imagem: imprimir é dizer o resultado em voz alta numa sala; retornar é escrever o resultado num papel e entregar na mão de alguém. A voz se dissipa; o papel pode ser usado, somado, guardado.
Por que isso importa tanto? Porque uma função que só imprime é um beco sem saída. Imagine uma função que calcula a média de notas e só a imprime na tela. Ela é bonita, mas inútil para qualquer coisa além de mostrar: você não consegue somar essa média a outra, não consegue decidir aprovado ou reprovado com base nela, não consegue guardá-la numa lista de médias da turma. O resultado apareceu e evaporou. Agora, se a função RETORNA a média, ela vira uma peça de Lego: você encaixa o resultado onde quiser. media_ana recebe media(notas_ana), e agora a média é um valor vivo no seu programa, pronto para entrar em comparações, somas e decisões. Retornar é o que transforma uma função em ferramenta reutilizável.
Usar o valor que volta
Quando uma função retorna um valor, a chamada dela vira, na prática, esse valor. É como se, no lugar onde você escreveu media(notas), o programa colocasse o número que a função devolveu. Isso significa que você pode usar a chamada da função em qualquer lugar onde um valor caberia: numa atribuição (m recebe media(notas)), numa comparação (se media(notas) >= 6), numa soma (total recebe media(prova1) + media(prova2)), até como argumento de outra função. Essa capacidade de encaixar o resultado de uma função dentro de outra expressão é o que dá poder de composição ao seu código: funções pequenas que retornam valores se combinam para resolver problemas grandes, cada uma fazendo bem a sua parte.
função dobro(x)
retorne x * 2
fim
// o retorno vira o valor no lugar da chamada:
a <- dobro(5) // a vale 10
b <- dobro(5) + 1 // b vale 11
se dobro(5) > 8 então // 10 > 8 é verdadeiro
escreva("Grande")
fim
escreva(dobro(dobro(3))) // dobro(3) é 6, dobro(6) é 12A chamada de uma função que retorna vira o valor devolvido, e pode ser usada em contas, comparações e até dentro de outra chamada.
🎮 Jogo da aula
A função que só imprime
Este código tenta usar o resultado de soma, mas a função não retorna nada, só imprime. Toque na linha onde está a causa do problema.
Quando imprimir e quando retornar
A regra prática é clara e vale a pena adotar. Uma função que CALCULA algo, uma média, um total, um preço com desconto, deve RETORNAR o resultado, porque quase sempre esse valor vai ser usado em outra parte do programa. Deixe a decisão de mostrar na tela para quem chamou a função. Assim a mesma função serve tanto para exibir o valor quanto para alimentar uma conta maior, sem amarrar o cálculo à tela. Imprimir dentro da função só faz sentido quando o objetivo dela é justamente comunicar com o usuário, como uma função que exibe um menu ou uma mensagem de boas-vindas. Misturar as duas coisas, uma função que calcula e imprime, costuma limitar o reuso: quem só queria o valor recebe também uma impressão indesejada. Calcule e retorne; mostre por fora.
Função que só imprime (limitada)
- O resultado aparece na tela e some.
- Não dá para somar, comparar ou guardar o valor.
- Serve só para mostrar, nada além.
Função que retorna (reutilizável)
- O valor volta para o programa.
- Dá para guardar, somar, comparar, passar adiante.
- Quem chama decide se mostra na tela ou usa numa conta.
Teste rápido
Uma função calcula o total de uma compra. Por que é melhor ela RETORNAR o total em vez de apenas IMPRIMI-lo?
Perguntas frequentes
- Qual a diferença de uma frase entre retornar e imprimir?
- Imprimir mostra um valor na tela para a pessoa ver; retornar devolve um valor para o programa continuar usando. Imprimir é comunicação com o usuário; retornar é comunicação com o resto do código. Uma função que calcula deve retornar; imprimir fica por conta de quem chama.
- Uma função pode retornar e imprimir ao mesmo tempo?
- Pode, tecnicamente, mas costuma ser uma má ideia misturar as duas coisas numa função de cálculo. Quem só queria o valor recebe uma impressão indesejada. O mais limpo é a função calcular e retornar, e a decisão de imprimir ficar de fora. Funções cujo propósito é comunicar (mostrar um menu) são a exceção.
- O que acontece se eu usar o resultado de uma função que só imprime?
- Você não recebe valor nenhum: a função imprimiu e não devolveu nada, então a variável que deveria guardar o resultado fica vazia. Tentar usar essa variável numa conta dá comportamento estranho ou erro. É um bug clássico de iniciante; o conserto é fazer a função retornar o valor.
- Por que retornar deixa a função reutilizável?
- Porque o valor devolvido pode ser encaixado em qualquer lugar onde um valor caberia: atribuições, comparações, somas, argumentos de outras funções. Isso permite compor funções pequenas para resolver problemas grandes. Uma função que só imprime é um beco sem saída; uma que retorna é uma peça de encaixe.
- A função para de executar quando retorna?
- Sim: ao encontrar o retorne, a função devolve o valor e encerra ali, ignorando qualquer linha depois dele. É por isso que as cláusulas de guarda funcionam, elas retornam cedo para sair da função. Colocar código depois de um retorno que sempre executa é um erro, porque esse código nunca roda.
- Toda função precisa retornar algo?
- Não. Funções cujo propósito é fazer uma ação (mostrar uma mensagem, salvar um dado) podem não retornar valor. Mas funções que calculam quase sempre devem retornar, para que o resultado sirva ao resto do programa. Na dúvida, se a função produz um valor que interessa, retorne-o.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.