AnyLogic
Развернуть
Размер шрифта

Оператор возврата 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 не нужна
}
Как мы можем улучшить эту статью?