3 мая 2015 г.

Оператор return

Оператор return используется для выполнения явного возврата из метода. То есть он снова передает управление объекту, который вызвал данный метод. Как таковой этот оператор относится к операторам перехода. Хотя полное описание оператора return придется отложить до рассмотрения классов и их методов, все же кратко ознакомимся с его особенностями.

Оператор return предписывает интерпретатору Java остановить выполнение текущего метода. Если метод возвращает значение, оператор return сопровождается некоторым выражением. Значение этого выражения становится возвращаемым значением метода.

Некоторые методы объявляются как void, так как они не возвращают никакого значения. Интерпретатор Java выполняет такие методы путем последовательного выполнения операторов до тех пор, пока он не достигнет конца метода. Выполнив последний оператор, интерпретатор выполняет возврат. Однако иногда метод void должен завершиться, не дожидаясь выполнения последнего оператора. В этом случае можно использовать оператор return без выражения.

Теперь это все надо пояснить на примере, и хотя классы мы еще не проходили, я надеюсь что этот пример будет понятным, а если нет, то не страшно, путь этот материал отложится на подкорку.

Чтобы изобразить пример нам понадобятся два класса, один с методом main, другой просто класс с вызываемыми статическими методами. Если не понятно что такое статические методы, то не переживайте, это скажем ну просто вызываемые “подпрограммы”. И так код в студию:

“Главная программа” (главный класс с методом main)

R0001

В строках 8 и 10 вызывается метод vReturn, который не возвращает ни каких значений, а просто вывод, в зависимости от переданного в него значения, то или иное сообщение.

В строках с 13 по 15 вызывается метод strReturn, который возвращает разные строки в зависимости от переданного в него значения.

Передаваемые в методы значения заключены в круглые скобки.

И вызываемая “подпрогорамма” (класс с вызываемыми статическими методами)

R0002

Метод vReturn не выводит ни какого сообщения если в него передано значение больше пяти, в ином случае он выводит сообщение.

Метод strReturn возвращает в виде значения строку, содержимое которой сообщает о том больше или равен переданный параметр пяти или же он меньше пяти.

В операторе if в строках 13 и 14 не использованы фигурные скобки, так как в них нет необходимости, хотя это и повысило бы читаемость кода.

В принципе, в коде этих классов нет ни чего сложного и не понятно. Но даже если это не понятно, то скоро мы уже перейдем к изучению классов и там все прояснится.

И надеюсь вывод, который генерируют данные классы, поможет понять как работает оператор return:

R0003

Первый вызов метода vReturn был сделан с параметром 3 и поскольку он меньше 5, то было напечатано сообщение из этого метода. Второй же вызов этого метода был сделан с параметром 7 и поэтому сразу же произошел возврат из метода, так как 7 больше 5 и данный метод ни чего не напечатал.

Метод strReturn возвращает строку в зависимости от переданного в нее параметра.

13 комментариев:

  1. Ответы
    1. Возможно потому что еще пока методы не были пройдены. Читайте дальше и со временем все поймете.

      Удалить
    2. А зачем фотографу Java? Вот это точно не понятно :)

      Удалить
    3. человек может эрудированным хочет быть))

      Удалить
    4. С каких это пор программирование на Джаве пример "эрудированности"?

      Удалить
    5. "А зачем фотографу Java? Вот это точно не понятно :)"
      Ахаха :D

      А так нормально объяснено, спасибо :)

      Удалить
    6. Да. Совершенно понятно. Если непонятно, значит надо изучать материал ранее, чем этот.

      Удалить
    7. Пошли вы все нахуй пидоры

      Удалить
  2. Жаль, что код нельзя скопировать( так бы обучение проходило быстрее...

    ОтветитьУдалить
    Ответы
    1. А кто мешает его скопировать из репозитария Git?

      Удалить
    2. копирование кода - плохая практика, как по мне
      лучше потратить время и напечатать, так понятней всё будет

      Удалить
    3. Полностью с вами согласен

      Удалить
  3.  добрый день, а не подскажите, где можно прочитать поподробнее про методы и прочее так как про return и, правда, не очень понятно

    ОтветитьУдалить