Atualizado: 19/07/2025

Este conteúdo é original e não foi gerado por inteligência artificial.

Retornando Valores de Métodos com a Instrução return em Java

A instrução return desempenha duas funções cruciais em Java: finalizar a execução de um método e, opcionalmente, devolver um valor ao código que o chamou.

Retornando um Valor de um Método

Quando um método precisa computar um resultado e entregá-lo, a instrução return é utilizada para essa finalidade.

A sintaxe é simples:

return valor;

O valor retornado pode ser de qualquer tipo de dado, como int, String, ou até mesmo objetos. No exemplo abaixo, um método retorna um valor do tipo int:

public class Program {

    public static void main (String args[]) {

        int resultado1 = sum(1, 2, 3);
        int resultado2 = sum(1, 4, 9);
        System.out.println(resultado1);  // Imprime 6
        System.out.println(resultado2);  // Imprime 14
    }

    static int sum(int a, int b, int c) {
        return a + b + c; // Retorna a soma dos parâmetros
    }
}

O tipo de retorno (int, String, etc.) na assinatura do método funciona como um contrato: ele promete que o método devolverá um valor daquele tipo específico. Se um método declara um tipo de retorno diferente de void, ele é obrigado a usar a instrução return para fornecer um valor.

O valor retornado pode ser diretamente utilizado, como ao ser atribuído às variáveis resultado1 e resultado2 no exemplo acima.

É possível ter várias instruções return dentro de um método, geralmente em blocos condicionais, para retornar valores diferentes com base na lógica interna.

public class Program {

    public static void main (String args[]) {

        System.out.println(getGreeting(7));     // Good morning
        System.out.println(getGreeting(13));    // Good afternoon
        System.out.println(getGreeting(18));    // Good evening
        System.out.println(getGreeting(2));     // Good night
    }

    static String getGreeting(int hour) {
        if (hour > 24 || hour < 0) {
            return "Invalid data";
        } else if (hour > 21 || hour < 6) {
            return "Good night";
        } else if (hour >= 15) {
            return "Good evening";
        } else if (hour >= 11) {
            return "Good afternoon";
        } else {
            return "Good morning";
        }
    }
}

No método getGreeting, que retorna uma String, a lógica avalia o parâmetro hour. Assim que uma das condições é satisfeita, a instrução return correspondente é executada, devolvendo a String apropriada e encerrando o método imediatamente.

Utilizando return para Saída Antecipada em Métodos void

Embora sua função principal seja devolver um valor, a instrução return também pode ser usada unicamente para controlar o fluxo de execução, forçando a saída de um método antes que ele chegue ao fim. Essa técnica é muito comum em métodos do tipo void, que não retornam valores.

public class Program{

    public static void main (String args[]) {

        printGreeting(7);     // Imprime: Good morning
        printGreeting(13);    // Imprime: Good afternoon
        printGreeting(32);    // Nenhuma saída
        printGreeting(2);     // Imprime: Good night
    }

    static void printGreeting(int hour) {
        // Validação de dados de entrada
        if (hour > 24 || hour < 0) {
            return; // Encerra o método imediatamente se a hora for inválida
        }

        // Se os dados forem válidos, a execução continua
        if (hour > 21 || hour < 6) {
            System.out.println("Good night");
        } else if (hour >= 15) {
            System.out.println("Good evening");
        } else if (hour >= 11) {
            System.out.println("Good afternoon");
        } else {
            System.out.println("Good morning");
        }
    }
}

Neste exemplo, o método printGreeting primeiro valida a entrada. Se a hora for inválida, a instrução return é executada. Ela interrompe o método naquele ponto, e o código restante de impressão das saudações não é executado.

Quando utilizada em um método void, a instrução return deve estar sozinha, sem nenhum valor associado.

📝 Exercícios

Tarefa 1

Analise o método abaixo e identifique o erro de compilação.

public class Program {

    public static void main(String[] args) {
        System.out.println(getNumber());
    }

    static int getNumber() {
        return "13";
    }
}
Resposta

O erro ocorre porque o método getNumber está declarado para retornar um int, mas a instrução return está tentando devolver uma String. Em Java, os tipos de dados devem ser compatíveis, e não é possível retornar uma String onde se espera um int. Para corrigir, deve-se retornar um valor inteiro, como return 13;.

Tarefa 2

Complete o método square no código abaixo. Ele deve calcular o quadrado do parâmetro number e retornar o resultado.

public class Calculator {
    public static void main(String[] args) {
        int result = square(7);
        System.out.println("O quadrado de 7 é: " + result); // Deve imprimir 49
    }

    static int square(int number) {
        // seu código aqui
    }
}
Resposta

Para completar o método square, você deve multiplicar o parâmetro number por ele mesmo e retornar o resultado. O código completo ficaria assim:

public class Calculator {
    public static void main(String[] args) {
        int result = square(7);
        System.out.println("O quadrado de 7 é: " + result); // Deve imprimir 49
    }

    static int square(int number) {
        return number * number;
    }
}
Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com