У меня создалось впечатление, что любая функция в C будет поддерживать только один оператор возврата, пока я не перейду через несколько заметок, где упоминалось несколько операторов возврата. Мой вопрос заключается в том, как работают эти множественные возвратные операторы. Любая помощь предоставляется. Благодаря!Как работают несколько операторов возврата?
ответ
Выполненный первый оператор return
прекратит выполнение функции, и ее значение будет использовано.
Однако, очевидно, может быть несколько путей выполнения - и они могут возвращать разные значения. Фактически в невольной функции каждый возможный путь выполнения имеет, чтобы вернуть что-то. Самый простой способ добиться этого, очевидно, имеет оператор return
в самом конце функции.
if(foo)
return 23;
else
return 42;
Есть some arguments за то, что только один оператор возврата в коде; подумайте о том, чтобы прочитать статью, если кто-либо из вас обратится к вам. Хорошим примером является код, который всегда необходимо выполнить для очистки. В этом случае вы только захотите вернуться после того, как это было сделано - так вы установите переменную для возвращаемого значения и используйте goto
, чтобы перейти в раздел «Очистка и возврат» в конце функции, если вам нужно вернуться рано.
Независимо от того, что обратное попало, это приведет к выходу функции и управлению, которая будет возвращена вызывающему абоненту.
Например:
int foo(int x)
{
if(x == 0) return 0;
return 1;
}
В этом случае, если x
является 0
, то первое возвращение будет хит и 0
будут возвращены. Если передается любое другое число, возвращается второй возврат и возвращается 1
.
Вы имеете в виду вот это?
int function(int input)
{
if (input == 1) return 1;
else return 0;
}
Ну, они работают как операторы возврата. Конечно, имеет смысл иметь один оператор return для каждого пути кода в вашей функции.
Если в других логических блоках есть значения, тогда вы могли бы иметь несколько возвратов в функции.
но что-то вроде: return 1; return 2;
не так много.
Ну, первый оператор возврата, который он встретит, остановит дальнейшее выполнение и возвращает управление функции вызывающего абонента. если вы хотите получить доступ к нескольким значениям после обработки в функции, то вы можете использовать struct или массивы этих объектов, которые вы можете вернуть frm, и, таким образом, вы получите обновленные значения как целые объекты struct/array.
Правило таково: не пустое изображение, невозможно достичь конца функции без согласования оператора возврата.
При выполнении функции fonction, когда вы нажимаете оператор return, вы выходите из функции независимо от того, где вы находитесь в функции (внутри a или a if ...). Поэтому, если в одной ветви есть два оператора return, учитывается только первый.
- 1. Использовать несколько операторов возврата
- 2. Несколько операторов if не работают
- 3. Несколько операторов case не работают
- 4. Как работают несколько операторов в выражении for?
- 5. Как работают несколько операторов стрелок в Perl?
- 6. Легкий способ переписать несколько операторов возврата
- 7. несколько операторов возврата в функции PHP
- 8. Стиль кодирования Python - несколько операторов возврата
- 9. Java - несколько операторов возврата - первый не возвращается?
- 10. Несколько операторов возврата в контроллере MVC
- 11. Несколько операторов возврата и производительности в C++
- 12. MySQL-запрос - несколько операторов, которые не работают
- 13. WordPress: Несколько условных операторов не работают
- 14. Rails Несколько операторов `if` не работают
- 15. Почему несколько операторов обновления не работают
- 16. Как использовать несколько вложенных тернарных операторов для возврата значения
- 17. Как отключить несколько операторов?
- 18. Несколько операторов regex
- 19. Несколько подготовленных операторов MYSQLi
- 20. Несколько операторов возврата в python «def» вызывает ошибку синтаксиса
- 21. Несколько операторов if else
- 22. Почему несколько бинарных операторов в строке работают в MATLAB?
- 23. несколько операторов if (вложенные 3) не работают в android
- 24. Несколько подготовленных операторов mysqli, которые не работают вместе
- 25. Как выполнить несколько операторов-хранителей в цикле?
- 26. C++ несколько операторов калькулятор
- 27. Объявление объекта для возврата против операторов прямого возврата C#
- 28. разделение нескольких операторов возврата на разные функции
- 29. Использование нескольких операторов возврата в цикл
- 30. Как объединить несколько операторов if
Я считаю, что 'else' является излишним :) –