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

Всем привет!

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

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

static void foo() {

return;

}

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

Спасибо!

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

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

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

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

static void foo()
{
    return;
}

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

Привет.

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

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

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

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