Всем привет!
Напишите пожалуйста - что возвращает return; в void-методе?
Т.е. мы можем написать:
static void foo() {
return;
}
и компилятор не считает это ошибкой. Но что он возвращает, ведь void - это как раз ничего не возвращающий тип данных?
Спасибо!
Доброго времени суток! Хороший вопрос)
В методах, помеченных "void", "return" выполняет функцию не "возврата", по логике и переводу, а , скорее, просто прекращения работы метода.
"return" в "void" методах по сути является аналогом break в конструкции switch/case. Тобишь просто выход из кейса) (в нашем случае - из тела метода).
Если подумать логично, то в методе foo:
static void foo()
{
return;
}
Между "return" и ' ; ' нет никакой переменной (которая представляет себе определённый тип данных в случае если у метода есть возвращаемое значение). Логично, что раз переменной нет, то и типа данных тоже нет. По этому ошибки тоже нет)
Привет.
В данном контексте return не возвращает никакого значения, а просто является "точкой выхода" из метода. Это то место, где метод прекращает свою работу. Если после return напишешь какое-то тело, то увидишь, что компилятор подчеркнёт твой код как "недостижимый".
Nefedor, Ярослав, большое спасибо за ответы!
В экзамене на сертификат попался такой вопрос, ответил правильно
обращайся, всегда поможем)