Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > С/С++
Перезагрузить страницу как уйти от if
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Baskura Baskura вне форума
Member
 
Сообщений: 38
Сказал(а) спасибо: 6
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.11.2013
По умолчанию как уйти от if - 28.10.2017, 23:57

Доброго времени суток!
В программе должны последовательно выполняться расчеты, при этом каждый следующий расчет должен выполняться лишь в том случае, если предыдущий расчет не вернул ошибку.
Т.е. перед каждым новым расчетом мне приходит проверять if(!err) и получается много вложений в коде:
cpp Код:
bool err;
err = calc1(double* value1, double a);
if(!err)
    err = calc2(double* value2, double value1);
    if(!err)
        err = calc3(double* value3, double value2);
        if(!err)
            err = calc4(double* value4, double value3)
            ...
Подскажите, пожалуйста, как можно избавиться от такой вложенности?
Ответить с цитированием
  (#2 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,397
Сказал(а) спасибо: 22
Поблагодарили 937 раз(а) в 921 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 29.10.2017, 00:37

Это как раз не вложения:
cpp Код:
bool err;
err = calc1(double* value1, double a);
if(!err)
    err = calc2(double* value2, double value1);

if(!err)
    err = calc3(double* value3, double value2);

if(!err)
    err = calc4(double* value4, double value3)

И почему в вызовах указаны типы аргументов?

Если сигнатуры функций одинаковы, можно указатели на функции собрать в массив и вызывать их в цикле, пока не переберутся все, либо не будет установлен флаг ошибки.
Ответить с цитированием
  (#3 (permalink)) Старый
Baskura Baskura вне форума
Member
 
Сообщений: 38
Сказал(а) спасибо: 6
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.11.2013
По умолчанию 29.10.2017, 01:09

а если сигнатуры разные?
Ответить с цитированием
  (#4 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,397
Сказал(а) спасибо: 22
Поблагодарили 937 раз(а) в 921 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 29.10.2017, 03:12

Тогда самое простое - оставить так.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как уйти от маргания Timage при изменении lef и top в цикле Anonymous Delphi 3 24.12.2002 14:46



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов