Оператор return. Результат метода

Последнее обновление: 16.09.2025

Методы могут возвращать некоторое значение. В примерах в предыдущих статьях применялись методы, которые имели тип void: методы с таким типом не возвращают никакого значения. Они просто выполняют некоторые действия. Для возвращения некоторого результата в методе применяется оператор return:

return возвращаемое_значение;

После оператора return указывается возвращаемое значение, которое является результатом метода. Это может быть литеральное значение, значение переменной или какого-то сложного выражения.

Например, определим метод, который возвращает значение типа String:

class Person{ 

    String sayHello(){
        return "Hello";
    }
}

Метод sayHello имеет тип String, следовательно, он должен возвратить строку. Поэтому в теле метода используется оператор return, после которого указана возвращаемая строка.

При этом методы, которые в качестве возвращаемого типа имеют любой тип, кроме void, обязательно должны использовать оператор return для возвращения значения. Например, следующее определение метода некорректно:

String sayHello(){

	System.out.println("Hello");
}

Также между возвращаемым типом метода и возвращаемым значением после оператора return должно быть соответствие. Например, в следующем случае возвращаемый тип - String, но метод возвращает число (тип int), поэтому такое определение метода некорректно:

String sayHello(){

	return 3;	// Ошибка! Метод должен возвращать строку, а не число
}

Результат методов, который возвращают значение, мы можем присвоить переменным или использовать иным образом в программе:

class Program{

    public static void main(String[] args) {  

        Person tom = new Person();
        // в метод System.out.println в качестве параметра передается результат метода tom.sayHello()
        System.out.println(tom.sayHello());  // Hello

        // присваиваем результат метода tom.sayHello() переменной
        String message = tom.sayHello();
        System.out.println(message);  // Hello
    }
}
class Person{ 

    String sayHello(){
        return "Hello";
    }
}

Метод sayHello() возвращает значение типа String. Поэтому мы можем присвоить это значение какой-нибудь переменной типа String:

String message = sayHello();

Либо даже передать в качестве значения параметру другого метода:

System.out.println(tom.sayHello());

После оператора return также можно указывать сложные выражения или вызовы других методов, которые возвращают определенный результат. Например, определим метод, который возвращает сумму чисел:

class Program{

    public static void main(String[] args) {  

        Calcualtor calc = new Calcualtor();
        int result = calc.sum(10, 12);  // 22
        System.out.println(result);  // 22

        System.out.println(calc.sum(10, 15));  // 25
    }
}
class Calcualtor{

    int sum(int a, int b){
		
        return a + b;
	}
}

Метод может использовать несколько вызовов оператора return для возвращения разных значений в зависимости от некоторых условий:

class Program{

    public static void main(String[] args) {  

        Time time = new Time();
        System.out.println(time.asString(7));     // Good morning
        System.out.println(time.asString(13));    // Good after noon
        System.out.println(time.asString(18));    // Good evening
        System.out.println(time.asString(2));     // Good night
    }
}
class Time{
    // метод получает текущий час
    String asString(int hour){
         
        // если значение некорретное
        if (hour >24 || hour < 0)
            return "Invalid data";
        // если от 21 часов вечера до 6 часов утра
        else if(hour > 21 || hour < 6)
            return "Good night";
        // если от 15 часов дня
        else if(hour >= 15)
            return "Good evening";
        // если от 11 часов дня
        else if(hour >= 11)
            return "Good after noon";
        // остальные случае - меньше 11часов дня
        else
            return "Good morning";
    }
}

Здесь метод asString класса Time принимает текущий час через параметр hour и возвращает значение типа String, то есть строку, то есть фактически преобразует час в строку. И в зависимости от значения параметра hour возвращаемая строка будет различаться.

Выход из метода

Оператор return применяется для возвращаения значения из метода, но и для выхода из метода. sВ подобном качестве оператор return применяется в методах, которые ничего не возвращают, то есть имеют тип void:

class Program{ public static void main(String[] args) { Time time = new Time(); time.print(7); // Good morning time.print(13); // Good after noon time.print(32); // time.print(56); // time.print(2); // Good night } } class Time{ // метод получает текущий час void print(int hour){ // если значение некорретное if (hour >24 || hour < 0) return; // если от 21 часов вечера до 6 часов утра else if(hour > 21 || hour < 6) System.out.println("Good night"); // если от 15 часов дня else if(hour >= 15) System.out.println("Good evening"); // если от 11 часов дня else if(hour >= 11) System.out.println("Good after noon"); // остальные случае - меньше 11часов дня else System.out.println("Good morning"); } }

Если переданное в метод print значение больше 24 или меньше 0, то просто выходим из метода. Возвращаемое значение после return указывать в этом случае не нужно.

Помощь сайту
Юмани:
410011174743222
Номер карты:
4048415020898850
Morty Proxy This is a proxified and sanitized view of the page, visit original site.