Перейти к содержимому

Как выйти из функции void c

  • автор:

Как выйти из функции void c

Возможно ли, Выйти из функции, если она возвращает «void». Что-то вроде «return», только без возвращения значения, просто перейти к коду после вызова функции.
Спасибо.

Re: Выйти из функции, если она возвращает «void»?

От: VuDZ
Дата: 26.02.02 23:58
Оценка: 3 (1)

Здравствуйте Алексей, Вы писали:

А>Возможно ли, Выйти из функции, если она возвращает «void». Что-то вроде «return», только без возвращения значения, просто перейти к коду после вызова функции.
А>Спасибо.

void Foo( void )< // do something if (bError) return; // do something another >

Re: Выйти из функции, если она возвращает «void»?

От: SDA
Дата: 26.02.02 23:58
Оценка: 3 (1)

Здравствуйте Алексей, Вы писали:

А>Возможно ли, Выйти из функции, если она возвращает «void». Что-то вроде «return», только без возвращения значения, просто перейти к коду после вызова функции.
А>Спасибо.

void MyFunc() < if(false) return; >
return;

Как выйти из функции void c

Форумчанин

Регистрация: 04.06.2011

Сообщений: 104

C++, прерывание процедуры (функции типа void)

Здравствуйте.
Как мне прервать работу функции типа void?
Нужно что-нибудь вроде break как в цикле, или return как в функции, возвращающей значение.
Спасибо

Форумчанин

Регистрация: 24.12.2012

Сообщений: 639

чем вас ретурн не устроил?

ICQ: 677936656 Gmail: ekEmbed@gmail.com

Ezhik Kihze
Посмотреть профиль
Найти ещё сообщения от Ezhik Kihze

Форумчанин

Регистрация: 04.06.2011

Сообщений: 104

В void функции можно использовать return?

Пользователь

Регистрация: 25.03.2012

Сообщений: 60

Для выхода из void функции, можно после слова return поставить пробел вместо возвращаемого значения. Написать «return ;» или «return void();». В VS2010 работает.

Последний раз редактировалось Arrioh; 04.01.2013 в 21:59 .

Выход из функции

Имеется два способа окончания работы функции и передачи управления вызывающему коду. Первый способ предполагает достижение последнего оператора функции, после чего работа функции заканчивается при встрече >. (Конечно, фигурной скобки на самом деле нет в объектном коде, но никто не мешает нам так думать.) Например, следующая функция выводит на экран строку:

void pr_reverse(char *s)
register int t;
for(t=strlen(s) -1; t > -1; t-) printf («%c», s [t]);
>

После отображения строки функция ничего не делает, поэтому управление передается вызвавшему ее коду.

Тем не менее, не многие функции используют данный метод окончания своего выполнения. Большинство функций используют оператор return для окончания выполнения с целью возврата значения или упрощения кода функции и увеличения его эффективности путем создания нескольких точек выхода. Важно запомнить, что функция может иметь несколько операторов return. Например, функция, показанная ниже, возвращает или индекс первого появления подстроки, указываемой в s1, в строке, указываемой в s2, или —1, если не обнаружено совпадений:

int find_substr (char *s1, char *s2)
register int t;
char *p, *p2;
for(t=0; s1[t]; t++)
p = &s1[t];
p2 = s2;
while (*p2 && *p2==*p)
p++;
p2++;
>
if(!*p2) return t;
>
return -1;
>

Надо обратить внимание, как два оператора return упрощают функцию.

Как выйти из функции при выполнении условия?

и нужно чтобы в функции events если выполниться условие то она бы вышла или бы скипнула итерацию как например contunie. Что можно использовать?

Отслеживать
задан 22 ноя 2021 в 12:01
53 1 1 серебряный знак 9 9 бронзовых знаков

Где вам нужно скипнуть итерацию? Конкретизируйте вопрос, допустим выполнился метод events , от этого метод Update завершится или перейдет к следующей итерации?

22 ноя 2021 в 12:16
Если вам нужно скип итерации делать внутри events , то в условии добавьте просто return;
22 ноя 2021 в 12:18

например если в events выполниться 1 условие то он просто выйдет не продолжая выполнять остальной код

22 ноя 2021 в 12:18
Остальной код — это какой? Внутри events или внутри Update ?
22 ноя 2021 в 12:19

Такие вопросы неприлично задавать. Что бы самому на него ответить — нужны вообще минимальные знания языка программирования. Простите, но Вам рановато работать в Unity. Для начала Вам следует укрепить свои знания C#. Иначе в дальнейшем Вы будете чаще и чаще сталкиваться с «нерешаемыми самостоятельно проблемами».

22 ноя 2021 в 14:52

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Чтобы выйти из метода можно использовать return; Заметьте, что если метод будет возвращать какое-то значение, то использование обычного return; не будет работать, компилятор потребует какое-то значение.

private void events() < if(/*условие*/) < //код return; //код дальше не будет выполняться, произойдет выход из метода. >> 

Отслеживать
ответ дан 22 ноя 2021 в 12:21
Aarnihauta Aarnihauta
2,327 3 3 золотых знака 11 11 серебряных знаков 23 23 бронзовых знака
не думал что можно использовать return без значения. спасибо
22 ноя 2021 в 12:22
@ULYANARSL только если метод void
22 ноя 2021 в 12:23

Один из принципов структурного программирования гласит, что все подпрограммы(в нашем случае методы) должны иметь один вход и один выход. Лучше переписать метод без явного return.

22 июн 2022 в 1:52

@VitaliyZlobin не всегда стоит придерживаться принципов и прочей лабуды которую напридумывали.. не вижу ничего плохого в том, что выход из метода будет по какому-то условию

22 июн 2022 в 4:15

@Aarnihauta это не на придумывали лабуды, а опыт топов и основателей программирования, таких как Эдсгер Дейкстра)) «не всегда стоит придерживаться принципов» — не всегда, но всегда нужно это делать осознанно и обоснованно, в данном случае обоснования нет, т.к. есть возможность обеспечить один выход из метода — это, как минимум, облегчит этапы отладки и тестирования.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *