return
Оператор return завершает выполнение текущей функции и возвращает её значение.
Исходный код данного интерактивного примера хранится в репозитории на GitHub. Если вы хотите поучаствовать в проекте интерактивных примеров, пожалуйста, склонируйте https://github.com/mdn/interactive-examples и отправьте нам запрос на включение ваших изменений.
Синтаксис
Описание
При вызове оператора return в функции её выполнение прекращается. Указанное значение возвращается в место вызова функции. Например, приведённая ниже функция возвращает возведённое в квадрат значение своего аргумента, x (где x – это число):
Если возвращаемое значение не указано, вместо него возвращается undefined .
Следующие выражения всегда прерывают выполнение функции:
Автоматическая расстановка точек с запятыми
На выражение return влияет автоматическая расстановка точек с запятыми (ASI). Разрыв строки не допускается между ключевым словом return и выражением.
трансформируется ASI в:
В консоли появится предупреждение «unreachable code after return statement».
Для того, чтобы избежать данной проблемы (предотвратить ASI), можно использовать скобки:
Помогите новичку понять: что такое «return» в функциях? Что он делает? Зачем он нужен?
значит так. . return возвращает результат выполнения функции.
например.
int plus5(int a)
<
return a+5;
>
в этой функции мы возвратили значение переданное функции (переменная а) но уже на 5 больше)
Можно возвращать любые типы данных.
Вот пример еще один, возвращающий произведение «а» и «в»
int proizvedenie(int a, int b)
<
int c;
c=a*b;
return c;
>
Использование:
int chislo;
chislo =proizvedenie(2,5);
таким образом функция вернет нам 10 и данное значение присвоится переменной chislo
«return 0» — на русский можно перевести как «вернуть ноль».
return завершает исполнение функции и возвращает свой параметр в качестве результата.
— и что? что с этого?
Как что? Тот, кто эту функцию вызвал получит результат 0.
Например, вы хотите написать во флеше порешатор квадратных уравнений.
За что вы возьмётесь?
Правильно, вы напишите функцию, в которую будете передавать a,b,c.
Внутри функции создавать переменную result(в ней будет храниться результат) . Но вот незадача: эта переменная существует только внутри функции, и получить этот результат снаружи никак нельзя.
function getX(a:Number, b:Number, c:Number)
//проводим арифметику с переданными числами
и по завершению выполнения функции переменная внутри неё удаляется, к ней нет доступа.
И что получается? Наша функция решает уравнение, но результат мы не получаем!
Как же получить результат?
Для этого есть оператор return.
function getX(a:Number, b:Number, c:Number)
//проводим арифметику с переданными числами
Что значит то, что мы вернули результат?
Теперь функция при её вызове в место вызова будет подставлять результат.
Если вывести её командой trace(), которая во флеше выводит то, что в скобках в окно output, то мы увидим там результат.
Почему не вывести результат сразу в функции? В некоторых ситуациях нужно провести какие-то действия над числом или строкой и вывести результат в другое место, которое, например, не доступно в месте описания функции. Или нужно получить результат в коду. Например, нужно принять массив, обработать его как надо и вернуть.
var array:Array = new Array();
var obrabotanniyArray:Array = processArray(array);
Если в функции вернуть этот массив, то он присвоится переменной obrabotanniyArray.
Оператор return (C)
Оператор return завершает выполнение функции и возвращает управление вызывающей функции. Выполнение возобновляется в вызывающей функции в точке сразу после вызова. Оператор return может возвращать значение, передавая его вызывающей функции. Дополнительные сведения см. в статье Тип возвращаемого значения.
Синтаксис
оператор-перехода:
return expressionopt ;
Значение параметра выражение, если оно указано, возвращается вызывающей функции. Если параметр выражение опущен, возвращаемое значение функции не определено. Параметр «выражение», если он присутствует, вычисляется и преобразуется к типу, возвращаемому функцией. Если оператор return содержит выражение в функциях, имеющих тип возвращаемого значения void , то компилятор выдает предупреждение, а выражение не вычисляется.
Если в определении функции оператор return не указан, то после выполнения последнего оператора вызванной функции управление автоматически возвращается вызывающей функции. В этом случае возвращаемое значение вызванной функции не определено. Если функция имеет тип возвращаемого значения, отличный от void , это считается серьезной ошибкой и компилятор выводит предупреждающее диагностическое сообщение. Если функция имеет тип возвращаемого значения void , то такое поведение приемлемо, но может считаться плохим стилем. Чтобы ваше намерение было понятным, используйте простой оператор return .
В качестве лучшей методики разработки рекомендуется всегда указывать тип возвращаемого значения для ваших функций. Если возвращаемое значение не требуется, объявите функцию как имеющую тип возвращаемого значения void . Если тип возвращаемого значения не указан, компилятор C предполагает, что по умолчанию используется тип возвращаемого значения int .
Многие программисты заключают аргумент выражения в выражении return в скобки. Однако использовать эти скобки в языке C необязательно.
Если компилятор обнаруживает операторы, размещенные после return , он может вывести предупреждающее диагностическое сообщение о недоступном для выполнения коде.
В функции main оператор return и выражение являются необязательными. То, что происходит с указанным возвращаемым значением, зависит от реализации. Только для Майкрософт:реализация C от Майкрософт возвращает значение выражения процессу, вызвавшему программу, например cmd.exe . Если выражение return не указано, среда выполнения C от Майкрософт возвращает значение, соответствующее успешному (0) или неудачному (ненулевое значение) выполнению.
Пример
В этом примере показана одна программа из нескольких частей. Она демонстрирует оператор return и использование его для завершения выполнения функции и, при необходимости, возврата какого-то значения.
Функция square возвращает квадрат своего аргумента, используя более широкий тип для избежания арифметической ошибки. Только для систем Майкрософт: в реализации C от Майкрософт тип long long достаточно велик, чтобы вмещать произведение двух значений int без переполнения.
Скобки вокруг выражения return в функции square вычисляются как часть выражения, и использовать их в операторе return не требуется.
Функция ratio возвращает частное двух int аргументов в виде значения double с плавающей запятой. Выражение return принудительно использует операцию с плавающей запятой путем приведения одного из операндов к типу double . В противном случае будет использоваться оператор целочисленного деления, а дробная часть будет потеряна.
Функция report_square вызывает square со значением параметра INT_MAX — самым большим целым числом со знаком, которое помещается в int . Результат типа long long сохраняется в squared , а затем выдается в выводе. Функция report_square имеет тип возвращаемого значения void , поэтому она не содержит выражения в операторе return .
Функция report_ratio вызывает ratio со значениями параметров 1 и INT_MAX . Результат типа double сохраняется в fraction , а затем выдается в выводе. Функция report_ratio имеет тип возвращаемого значения void , поэтому явно возвращать значение не требуется. Выполнение report_ratio не дает результата и не возвращает вызывающей функции никакого значения.
Функция main вызывает две функции: report_square и report_ratio . Поскольку report_square не принимает параметров и возвращает void , результат не присваивается переменной. Аналогичным образом функция report_ratio возвращает void , поэтому ее возвращаемое значение тоже не сохраняется. После вызова каждой из этих функций выполнение продолжается в следующем операторе. Затем main возвращает значение 0 (обычно свидетельствующее об успешном выполнении), чтобы завершить программу.