📤 Funções com Retorno (return)

Ao contrário das funções vazio (sem retorno), as funções com retorno são projetadas para realizar um cálculo ou processamento e devolver o resultado para quem as chamou.

📞 Analogia: O Consultor

Se a função sem retorno é um despachante, a função com retorno é um consultor. Você faz uma pergunta (chamada), ele pesquisa/calcula (processamento) e te entrega um relatório (retorno).

sequenceDiagram
    participant inicio as funcao inicio()
    participant fn as calcularMedia()

    inicio->>fn: Chamada: calcularMedia(7, 9)
    Note over fn: (7 + 9) / 2 = 8
    fn-->>inicio: Retorna Valor: 8
    Note over inicio: minhaMedia = 8

🏗️ Sintaxe da Declaração

Para retornar um valor, você deve especificar o tipo de dado (inteiro, real, cadeia, etc.) antes do nome da função e usar a palavra retorne:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
programa {
    // Declaração: especificamos o tipo 'real' no retorno
    funcao real calcularSoma(real a, real b) {
        real resultado = a + b
        retorne resultado // Envia o dado de volta
    }

    funcao inicio() {
        real conta = calcularSoma(10.5, 20.0) // Armazena o retorno
        escreva("O total é: ", conta)
    }
}

⚖️ Regra de Ouro: Um Único Valor

Uma função em Portugol (e na maioria das linguagens) só pode retornar um único valor por vez.

Se você precisar “devolver” mais de uma informação (ex: resultado e status), você precisará usar técnicas avançadas como Passagem por Referência, que veremos nos próximos capítulos.


🏁 Resumo do Capítulo

Funções com retorno permitem que o programa principal tome decisões baseadas no processamento de sub-rotinas especializadas. 🚀