Void-метод, что возвращает return; ?

  • 19 Просмотры
  • Последний пост 19 июля 2018
  • Найдено решение по теме
Камиль разместил пост 18 июля 2018

Всем привет!

Напишите пожалуйста - что возвращает return; в void-методе?

Т.е. мы можем написать:

static void foo() {

   return;

}

и компилятор не считает это ошибкой. Но что он возвращает, ведь void - это как раз ничего не возвращающий тип данных?

Спасибо!

  • Пост понравился
  • Ярослав Сельник
Отсортировать по: Стандартный | Последний | Голоса
Nefedor разместил пост 18 июля 2018

Доброго времени суток! Хороший вопрос)

В методах, помеченных "void", "return" выполняет функцию не "возврата", по логике и переводу, а , скорее, просто прекращения работы метода.

"return" в "void" методах по сути является аналогом break в конструкции switch/case. Тобишь просто выход из кейса) (в нашем случае - из тела метода).

Если подумать логично, то в методе foo:

static void foo()
{
    return;
}

Между "return" и ' ; ' нет никакой переменной (которая представляет себе определённый тип данных в случае если у метода есть возвращаемое значение). Логично, что раз переменной нет, то и типа данных тоже нет. По этому ошибки тоже нет)

  • Пост понравился
  • Камиль
Ярослав Сельник разместил пост 18 июля 2018

Привет.

В данном контексте return не возвращает никакого значения, а просто является "точкой выхода" из метода. Это то место, где метод прекращает свою работу. Если после return напишешь какое-то тело, то увидишь, что компилятор подчеркнёт твой код как "недостижимый".

  • Пост понравился
  • Камиль
Камиль разместил пост 19 июля 2018

Nefedor, Ярослав, большое спасибо за ответы!

В экзамене на сертификат попался такой вопрос, ответил правильно

  • Пост понравился
  • Nefedor
  • Иван Бровченко
Nefedor разместил пост 19 июля 2018

обращайся, всегда поможем)

Close