Не понимаю зачем этот оператор нужен. Во всех учебниках пишут, что он «вызывает», но не могу понять что это значит в данном контексте.
Буду рад, если объясните с примером что это.
JavaScript
Объясните return в языках программирования.
return возвращает какое то значение из метода
Бейбарыс Бейбітулы
Что значит «возвращает»?
Что можно объяснить тупому, который путает "вызывает" и "возвращает"?!
Правильно! НИ-ЧЕ-ГО!!!
Правильно! НИ-ЧЕ-ГО!!!
Значит программирование не ваше, раз не понимаете зачем функция должна возвращать результат
return прекращает выполнение функции и, возможно, передает какое-то значение через ее имя.
Не знаю как в других языках, а в JS return возвращает указанное значение, которое может быть результатом работы этой функции. На этом функция завершает свою работу.
>> Не понимаю зачем этот оператор нужен.
Ключевое слово которое выполняет операции завершающие текущий вызов.
Ключевое слово которое выполняет операции завершающие текущий вызов.
return не вызывает, а, грубо говоря, возвращает программу на ступень выше с переданным ему аргументом (или без него).
Визуально это выглядит как-то так (условный псевдокод, похожий на Си):
int main(int argc, char** argv) { // основная функция программы, которая вернет по завершению операционной системе целочисленную переменную (int)
int a; // объявляем переменную a
int b;
myfuncA(); // вызываем функцию myfuncA
a = myfuncB(40,2); // вызываем функцию myfuncB с аргументами 40 и 2
// переменная a здесь будет равна 42
myfuncC();
a = myfuncD(40,1);
// переменная a здесь будет равна 82
b = myfuncD(40,2);
// переменная b здесь будет равна 42
return 1;
}
void myfuncA(int x, int y) { // функция на вход получает два аргумента
int r = x + y; // функция объявляет переменную r и инициализирует ее значением сумму аргументов x и y, но ничего не возвращает и данная переменная уничтожается при выходе из данной функции
}
int myfuncB(int x, int y) {
return x + y; // функция при выходе из нее возвращает сумму аргументов x и y
}
void myfuncC(int x, int y) {
int r = x + y; // функция объявляет переменную r и инициализирует ее значением сумму аргументов x и y, но ничего не возвращает и данная переменная уничтожается при выходе из данной функции
return; // абсолютно бессмысленный вызов return.. т. е. данная функция абсолютно идентична myfuncB()
}
int myfuncD(int x, int y) {
int r = x + y; // объявляем переменную r и инициализируем ее суммой аргументов x и y
if(r % 2 == 0) { // если r делится на два без остатка (четное число)...
return r; // выходим из функции, возвращая значение переменной r
} else { // иначе (если число нечетное)...
r *= 2; // умножаем значение переменной на два и...
}
return r; // выходим из функции, возвращая новое значение переменной r
}
Надеюсь это будет сколько-нибудь понятно.. =)
Визуально это выглядит как-то так (условный псевдокод, похожий на Си):
int main(int argc, char** argv) { // основная функция программы, которая вернет по завершению операционной системе целочисленную переменную (int)
int a; // объявляем переменную a
int b;
myfuncA(); // вызываем функцию myfuncA
a = myfuncB(40,2); // вызываем функцию myfuncB с аргументами 40 и 2
// переменная a здесь будет равна 42
myfuncC();
a = myfuncD(40,1);
// переменная a здесь будет равна 82
b = myfuncD(40,2);
// переменная b здесь будет равна 42
return 1;
}
void myfuncA(int x, int y) { // функция на вход получает два аргумента
int r = x + y; // функция объявляет переменную r и инициализирует ее значением сумму аргументов x и y, но ничего не возвращает и данная переменная уничтожается при выходе из данной функции
}
int myfuncB(int x, int y) {
return x + y; // функция при выходе из нее возвращает сумму аргументов x и y
}
void myfuncC(int x, int y) {
int r = x + y; // функция объявляет переменную r и инициализирует ее значением сумму аргументов x и y, но ничего не возвращает и данная переменная уничтожается при выходе из данной функции
return; // абсолютно бессмысленный вызов return.. т. е. данная функция абсолютно идентична myfuncB()
}
int myfuncD(int x, int y) {
int r = x + y; // объявляем переменную r и инициализируем ее суммой аргументов x и y
if(r % 2 == 0) { // если r делится на два без остатка (четное число)...
return r; // выходим из функции, возвращая значение переменной r
} else { // иначе (если число нечетное)...
r *= 2; // умножаем значение переменной на два и...
}
return r; // выходим из функции, возвращая новое значение переменной r
}
Надеюсь это будет сколько-нибудь понятно.. =)
Объясню примером из жизни.
Для начало необходимо понять суть предназначения функций, более простым языком функция это просто работник, выполняющий твои указания. Теперь представь что у тебя есть наемный работник, его работа заключается в том чтобы получать два числа и складывать их, работника зовут к примеру addSum, ты как его начальник можешь вызвать, и сказать ему эй addSum на тебе два числа 7 и 5 рассчитай мне сумму этих чисел, работник получает от тебя эти данные, и начинает с ними работать, работник их складывает, и возвращает тебе сумму в качестве результата, а именно 12. Теперь представь что было бы, если твой работник не возвращал результата тебе обратно, какой толк от этого работника? Тоже самое с функциями в программировании, от функции не будет пользы, если она не возвращает результата, той функции которая её вызывала, поэтому в функциях используется оператор return в качестве возврата результата функции. Но есть функции с типом void которые ничего не возвращают.
Ещё один пример, есть люди которые занимаются переводом иностранных документов, в общем это переводчики, так вот переводчикам дают исходный текст на иностранном языке, а переводчик переводит его на русский язык, и отдаёт обратно заказчику, переводчик может выступать в качестве функции, тебе как заказчику не нужно знать о том как переводчик будет его переводить, при помощи google, самостоятельно или при помощи друга, тебе важен лишь результат работы переводчика (функции), как только переводчик закончил свою работу, он тебе возвращает переведенный документ с иностранного языка на русский язык. И опять представь что было бы, если переводчик ничего не возвращал тебе, от него не было бы пользы никакой.
Чтобы более подробно понимать об этих терминах, лучше стоит начать обучаться программировать на типизированных языках, чем на динамических.
Также оператор return используется в качестве немедленного выхода из функции, когда результат уже получен и не требуется дальнейших операций, return приводит к немедленному возврату и выходу из функции.
Для начало необходимо понять суть предназначения функций, более простым языком функция это просто работник, выполняющий твои указания. Теперь представь что у тебя есть наемный работник, его работа заключается в том чтобы получать два числа и складывать их, работника зовут к примеру addSum, ты как его начальник можешь вызвать, и сказать ему эй addSum на тебе два числа 7 и 5 рассчитай мне сумму этих чисел, работник получает от тебя эти данные, и начинает с ними работать, работник их складывает, и возвращает тебе сумму в качестве результата, а именно 12. Теперь представь что было бы, если твой работник не возвращал результата тебе обратно, какой толк от этого работника? Тоже самое с функциями в программировании, от функции не будет пользы, если она не возвращает результата, той функции которая её вызывала, поэтому в функциях используется оператор return в качестве возврата результата функции. Но есть функции с типом void которые ничего не возвращают.
Ещё один пример, есть люди которые занимаются переводом иностранных документов, в общем это переводчики, так вот переводчикам дают исходный текст на иностранном языке, а переводчик переводит его на русский язык, и отдаёт обратно заказчику, переводчик может выступать в качестве функции, тебе как заказчику не нужно знать о том как переводчик будет его переводить, при помощи google, самостоятельно или при помощи друга, тебе важен лишь результат работы переводчика (функции), как только переводчик закончил свою работу, он тебе возвращает переведенный документ с иностранного языка на русский язык. И опять представь что было бы, если переводчик ничего не возвращал тебе, от него не было бы пользы никакой.
Чтобы более подробно понимать об этих терминах, лучше стоит начать обучаться программировать на типизированных языках, чем на динамических.
Также оператор return используется в качестве немедленного выхода из функции, когда результат уже получен и не требуется дальнейших операций, return приводит к немедленному возврату и выходу из функции.
Евгений Голицын
так если любая функция без return бесполезна, тогда почему она не встроенна в функционал любой функции, какой тогда смысл разработчиками было ее отделять?
Похожие вопросы
- за сколько можно выучить язык программирования JS(JavaCript)?
- Нужно ли человечеству так много языков программирования?
- Для чего практически нужен цикл в языках программирования javascript, php ?
- Язык программирование, с чего начать?
- Какой язык программирования изучить 2-м? Я думаю, JavaScript попробовать, посоветуйте книги по его изучению
- Хочу начать учить язык программирование, но не могу определиться какой. Что вы можете сказать по поводу JavaScript.
- Если JS -это плохой язык программирования, то почему он популярный?
- Язык программирования JavaScript будет ли более востребованным в будущем?
- Обьясните простым языком. Что делает RETURN в JS
- Зачем нужен return в JavaScript?