Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2013, 20:35   #1
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию Выход из глубоко вложенных циклов

есть несколько вложенных циклов for. При определенных условиях надо выйти.
Код:
for (int i = 0; i < s1; i++)
    for (int j = 0; j < s2; j++)
        for (int k = 0; k < s3; k++)
        {
bool b;
             // Тут выполняется 
             // код
             if (b)
             {
                  // если b истина надо выйти из всех циклов
             }
        }
мне приходят две мысли
1. изменить значения переменных i j k так чтоб условия не выполнялись
Код:
if (b)
{
    i = s1;
    j = s2;
    k = s3;
}
2. применить нелюбимый всеми оператор goto

Последний раз редактировалось SAMOUCHKA; 08.09.2013 в 20:38.
SAMOUCHKA вне форума Ответить с цитированием
Старый 08.09.2013, 20:39   #2
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

Предлагаю такой вариант: В условия выполнения циклов добавьте необходимую вам проверку переменной b.
т.е:
Код:
bool b = false;
for (int i = 0; i < s1 && b3 != true; i++)
    for (int j = 0; j < s2 && b3 != true; j++)
         for (int k = 0; k < s3 && b3 != true; k++)
Igor95 вне форума Ответить с цитированием
Старый 08.09.2013, 20:48   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
2. применить нелюбимый всеми оператор goto
Или оформить все это в функцию, и в нужный момент вызвать return
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.09.2013, 20:50   #4
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Igor95 Посмотреть сообщение
Предлагаю такой вариант: В условия выполнения циклов добавьте необходимую вам проверку переменной b.
Рецепт, как замедлить работу циклов?

Я бы выделил блок с циклами в отдельную inline функцию, и сделал бы в ней return.
_Bers вне форума Ответить с цитированием
Старый 08.09.2013, 20:57   #5
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

я не понял- с inline функцыей медленней будет?
SAMOUCHKA вне форума Ответить с цитированием
Старый 08.09.2013, 20:58   #6
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

Работу замедляет...
Да, с функцией получше, но я думал, что автору нужно будет еще продолжить работу в вызванной функции.
Igor95 вне форума Ответить с цитированием
Старый 08.09.2013, 21:00   #7
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от SAMOUCHKA Посмотреть сообщение
я не понял- с inline функцыей медленней будет?
Медленнее будет в каждом цикле проверять ещё дополнительную переменную
_Bers вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа си ++ с использованием вложенных циклов. misha.markov Помощь студентам 0 08.11.2012 19:57
Задача с неизвестным количеством вложенных циклов fobiz Помощь студентам 1 01.04.2012 17:04
Программирование вложенных циклов vanek1 Помощь студентам 2 28.11.2010 12:11
с использованием вложенных циклов вкусняшка Помощь студентам 4 31.03.2009 17:22
переменное число вложенных циклов Evil Sun Общие вопросы C/C++ 4 31.03.2009 09:59