Оператор возврата return

Оператор возврата return используется в теле функции и осуществляет выход из этой функции (прекращает выполнение операторов функции и передает управление следующему за вызовом этой функции оператору). В зависимости от того, возвращает функция значение или нет, синтаксис оператора return может быть одним из следующих:

return <значение>; //в функции, которая возвращает значение
return; //в функции, которая не возвращает значение

Рассмотрим следующую функцию. Она возвращает первый заказ, найденный для данного клиента в коллекции orders:

Order getOrderFrom( Person client ) { //функция возвращает значение типа Order
if( orders == null )
return null; //если коллекция orders не существует, функция возвращает null
for( Order o : orders ) { //для каждого заказа в коллекции
if( o.client == client ) //если поле client заказа соответствует заданному клиенту
return o; //тогда возвращаем этот заказ и выходим из функции
}
return null; //если мы здесь, значит заказ не был найден – возвращаем null
}

Если оператор return находится внутри одного или нескольких вложенных циклов или операторов if, то он немедленно прекращает выполнение всех этих циклов/операторов и производит выход из функции.

Если функция не возвращает значение, то вы можете не добавлять команду return в самый конец тела функции: функция и так закончит свое выполнение естественным путем:

void addFriend( Person p ) { //void означает, что функция не возвращает никакого значения
if( friends.contains( p ) )
return; //явный выход из середины функции
friends.add( p );
//в противном случае функция завершает выполнение после последней команды – команда return не нужна
}