JavaRush /Курсы /Java Syntax Pro /Результат функции

Результат функции

Java Syntax Pro
6 уровень , 2 лекция
Открыта

1. Оператор return

Думаете вы уже выучили все про методы в Java? Как бы не так, вы еще и половины не знаете.

Начнем с чего-нибудь простого. Например, в Java есть команда (оператор) return, позволяющий мгновенно завершить метод, в котором он был вызван. Внешний вид команды:

return;

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

Если return вызвать в методе main, метод main тут же завершится, а вместе с ним и вся программа.

Пример:

class Solution
{
   public static void fill(int[] data, int from, int to, int value)
   {


     if (from < 0 || to > data.length)
       return;

     for (int i = from; i < to; i++)
     {
       data[i] = value;
     }
   }

   public static void main(String[] args)    {      int[] months = {1, 2, 3, 4, 5, 6, 7, 8 ,9, 10, 11, 12};     fill(months, 2, 10, 8);    } }


Метод fill заполняет часть переданного массива значением value.
Часть массива определяется индексами from и to.
Если from меньше 0 или to больше длины массива, метод тут же завершается.

В приведенной выше программе есть метод fill, который заполняет переданный в него массив значением value, причем заполняет не весь массив, а его часть, заданную индексами from и to.

В начале метода fill проверяется, корректно ли переданы в него значения. Если from меньше 0, или to больше длины массива, то метод fill тут же завершается (вызывает команду return).

Полезная вещь этот оператор return: есть практически в каждом методе в Java, и вот почему.



2. Функции с результатом, void

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

Так вот, в Java методы могут иметь значение. И это очень хорошая новость: методы могут не просто что-то делать в зависимости от параметров, но и, например, вычислить что-нибудь и вернуть результат вычисления.

Вы, кстати, с такими методами уже сталкивались:

double delta = Math.abs(d1 - d2);
Метод abs() возвращает значение типа double
Scanner console = new Scanner(System.in);
int x = console.nextInt();

Метод nextInt() возвращает значение типа int
String str = "Привет";
String s2 = str.toUpperCase();

Метод toUpperCase() возвращает значение типа String
int[] data = {1, 4, 5, 6, 7, 8, 11};
int[] array = Arrays.copyOf(data, 4);

Метод copyOf() возвращает значение типа int[]

Каждый метод может вернуть только одно значение и одного заранее заданного типа. Тип возвращаемого значения определяется при объявлении метода:

public static тип имя(параметры)
{
   код метода
}

Где имя — это имя метода, параметры — список параметров метода, а тип — тип результата, который возвращает метод.

Для методов, которые ничего не возвращают, есть специальный тип-заглушка — void.

Пишете свой метод и не хотите ничего возвращать вызывающему методу? Просто объявите тип метода void, и проблема решена. Таких методов в Java тоже много.


3. Возвращение результата

Как объявлять метод с результатом вычисления/работы мы только что разобрались, а как же этот результат вернуть из самого метода?

Для этого нам снова пригодится оператор return. Передача результата из метода будет выглядеть так:

return значение;

Где return — это оператор, который немедленно завершит работу метода. А значение — это значение, которое должен вернуть метод вызывающему методу в качестве результата. Тип значения обязан совпадать с типом, указанным при объявлении метода.

Пример 1. Метод вычисляет минимум из двух чисел:

int min(int a, int b)
{
   if (a < b)
     return a;
   else
     return b;
}
Метод возвращает минимум из двух чисел.

Если a < b
вернуть a
Иначе
вернуть b

Пример 2. Метод дублирует переданную в него строку n раз:

String multiple(String str, int times)
{
   String result = "";
   for (int i = 0; i < times; i++)
     result = result + " "+ str;
   return result;
}
Метод принимает два параметра — строку и количество ее повторений.
Создается пустая строка для будущего результата.

В цикле times раз
к строке result добавляется пробел и строка str.
В качестве результата метода возвращается переменная result.

Пример 3: Метод вычисляет максимум из двух чисел с помощью тернарного оператора:

int max(int a, int b)
{
   return (a > b ? a : b);
}
Метод возвращает максимум из двух чисел.

вернуть (если a > b, то a, иначе b)

Комментарии (310)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Роман Зарубин Уровень 8
9 декабря 2025
работаем
Vlad Уровень 15
22 октября 2025
как это вообще можно понять
Daria #3614631 Уровень 16
23 сентября 2025
Долго тупила и смотрела на экран, а оказалось, что решение задачи убралось в две строчки :)
Vadim Уровень 16
15 августа 2025
В комиксе отсылка к Дон Кихоту? )))
rorsrark Уровень 10
16 августа 2025
если только в том моменте, где робот шизу словил и выдумал Дульсинею а вообще, на такое произведение можно кучу отсылок найти!
Виктор Уровень 9
4 декабря 2025
на первом рисунке вообще мимик из линейки тёмных душ)
Дмитрий Уровень 14
12 июля 2025
почему 9 степень? почему не просто попросить написать калькулятор для любых степеней? public static long cube(long a,long b){ long res=1; for (int i = 0; i < b; i++) { res = res*a; } return res; }
Entropie Уровень 8
26 сентября 2025
Для того, чтобы народ смог додуматься, или хотя бы узнать, что можно делать так: cube(cube(a));
makise Уровень 22
27 июня 2025

public static long ninthDegree(long s){
        return cube(cube(s));
    }
REK.QA Уровень 4
10 июня 2025
Привет. Хотех усовершенствовать задачу 2. Что не так в коде? public class Solution { public static void main(String[] args) { Scanner console = new Scanner(System.in); long a = console.nextLong(); cube(a); } public static long cube(long a) { long b = a * a * a; return System.out.println(b); } }
Anonymous #3396475 Уровень 1
25 июня 2025
в методе cube() объявлен тип возвращаемого значения long, а он ничего не возвращает, а выводит b через System.out.println(). Нужно просто написать в нем return b
Anonymous #3585174 Уровень 33
6 июня 2025
like
Apsel Уровень 13
23 мая 2025
Мне кажеться или правда чем дальше по курсу тем больше глючит javarush плагин в idea с проверкой на ответ
Aidar Mukushev Уровень 6
5 сентября 2025
я поэтому не подключаю плагин к IDE, потому что это даже визуально выглядит не очень, просто решаю сам для себя в IDE, а потом вставляю ответ. Правда есть баг в IDE JavaRush, когда вставляешь готовый код для проверки он автоматически начинает проверку до нажатия "проверка" от этого невозможно что-то исправить.
Тимур Зозулин Уровень 7
26 апреля 2025
Объясните пожалуйста что ретурн возвращает и куда?
Ivan Уровень 16
28 апреля 2025
когда-то тоже задавался этим вопросом, он возникает скорее от непонимания работы методов. вот это перечитай: "в Java методы могут иметь значение. И это очень хорошая новость: методы могут не просто что-то делать в зависимости от параметров, но и, например, вычислить что-нибудь и вернуть результат вычисления." Когда будешь писать проекты в будущем, будешь создавать методы которые что-то вычисляют, и там понадобится return в каждом методе, чтобы использовать далее результат вычислений этих методов для своих целей.
Тимур Зозулин Уровень 7
10 мая 2025
спасибо