Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
1

Выйти из нескольких функций

03.01.2014, 10:03. Показов 4108. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Необходимо при определенном условии выскочить из косвенной рекурсии. Конечно, можно сделать это монструозно, но, полагаю, есть возможность выйти изо всех эти функций безо всяких глобальных переменных и тучи if при каждом косвенном вызове на проверку этого глобального флага?
Исключения использовать нельзя.

Я бы сделал это через goto, но насколько это правильно? Разворачивает ли goto стэк? Мне кажется, что нет.. Но может я ошибаюсь?

Так бы это выглядело с goto:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void f1()
{
f2();
}
void f2()
{
if (..)
goto HERE;
f1();
}
int main()
{
f1();
HERE:
doSomethingElse();
}

Не по теме:

Пожалуйста, не надо кричать "использование goto = быдло код"..

0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.01.2014, 10:03
Ответы с готовыми решениями:

Условия для нескольких функций
Всем привет! Делаю задачку 1-го курса. Столкнулся с ошибкой: Хочу, чтобы при вводе определенного...

Работа с файлом из нескольких функций
Здравствуйте. Нужно печатать в 1 файл из нескольких функций. Предположим есть функция main void...

Возвращение из функций нескольких значений
Доброго времени суток. Нужна помощь. Дано задание: Напишите функцию swap(int& a, int& b, int& c),...

Объявление нескольких функций в head.h
Помогите разобраться. Ниже приведенный код работает у меня. Но меня мучают сомнения, что помещать...

22
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
03.01.2014, 15:15 21
Author24 — интернет-сервис помощи студентам
Необходимо реализовать логику на предикатах в колбэках.
0
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
03.01.2014, 17:52 22
Ппц, начинаем думать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
void f1()
{
    f2();
}
void f2()
{
    if (..)
    goto HERE;
    f1();
}
int main()
{
    f1();
    HERE:
    doSomethingElse();
}
 
// equal to
 
void bar()
{
    foo();
}
 
void foo()
{
    if (true) return;
    bar();
}
Это в случае если функции действительно без возвращаемых значений.
0
0 / 0 / 0
Регистрация: 25.12.2013
Сообщений: 9
03.01.2014, 18:17 23
а break не пробовали?

Добавлено через 1 минуту
Ну или применить алгоритм метки
label1:
label2:
...
это позволяет выйти из многовкладенных циклов по условию

Добавлено через 4 минуты
Опыт это не имя которое дано ошибкам
Есть люди ошибаются на одном и том же 1000 раз и не понимают... вот тут то!
именно понимают!
опыт это то что человек понял и реализовал
0
03.01.2014, 18:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.01.2014, 18:17
Помогаю со студенческими работами здесь

Решение задачи с применением нескольких функций
Помогите с решением :) Написать программу решением задачи с помощью нескольких функций. Значения...

Программирование задач с использованием нескольких функций
всем доброго времени суток! вроде код правильный, помогите найти ошибку!! #include <iostream.h>...

Программа с возвратом из функций нескольких значений
Как переделать эту на программу с возвратом из функций нескольких значений? void main() {...

Шаблоны функций при компиляции нескольких файлов
Добрый день, форумчане! Ситуация следующая: есть проект на VS2015. В сторонней от него папке...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru