Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
d7d1cd
197 / 126 / 36
Регистрация: 30.06.2011
Сообщений: 1,153
Завершенные тесты: 1
#1

Прервать цикл из цикла, вложенного в него - C++

02.09.2016, 09:53. Просмотров 592. Ответов 20
Метки нет (Все метки)

Приветствуют. Собственно, вопрос в названии темы.
C++
1
2
3
4
5
6
7
8
9
for(int i = 1; i <= 10; i++)
 for(int j = 1; j <= 5; j++)
{
 if(/* здесь условие выхода из обоих циклов */)
  {
   /* как выйти сразу из 2-х циклов? */
   /* break даст выход только из цикла j */
  }
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.09.2016, 09:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Прервать цикл из цикла, вложенного в него (C++):

Оператор вложенного цикла - C++
Может ли внешний оператор вложенного цикла не выполниться ни разу?

Выход из вложенного цикла - C++
Собственно как выходить из вложенного цикла ? goto ?

Не выполняется условие вложенного цикла - C++
Отладчик показывает что не выполняется условие цикла по j. В чем косяк? /* Вывести простые числа в заданном диапазоне */ ...

Объясните работу вложенного цикла - C++
Привет всем,подскажите пожалуйста как работает данный цикл,я понимаю,что можно это &quot;задание&quot; сделать проще и без вложенного цикла,но не...

Составить и отладить программу с использованием вложенного цикла - C++
На предприятии выработка продукции за одну неделю месяца составляла n единиц. Еженедельно она увеличивалась на 10%. Каждый месяц цена...

Как корректно прервать цикл? - C++
Вот цикл.Я спрашиваю &quot;Добавить еще?&quot;,пользователь жмет y или n и у меня сразу весь цикл делается (т.е. 10 раз выводит cout без ввода).Как...

20
nimazzzy
Заблокирован
02.09.2016, 09:58 #2
- Заводить дополнительную булеву переменную, которую проверять в условии внешнего цикла, выставлять во внутреннеим.
- goto
0
d7d1cd
197 / 126 / 36
Регистрация: 30.06.2011
Сообщений: 1,153
Завершенные тесты: 1
02.09.2016, 10:02  [ТС] #3
nimazzzy, то есть, специального оператора в С++ для этого нет?
0
gru74ik
Модератор
Эксперт CЭксперт С++
4196 / 1844 / 198
Регистрация: 20.02.2013
Сообщений: 4,990
Записей в блоге: 22
02.09.2016, 10:08 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от d7d1cd Посмотреть сообщение
специального оператора в С++ для этого нет?
Есть. Оберните Ваши циклы в функцию или в лямбду и выходите с помощью return.
3
nimazzzy
Заблокирован
02.09.2016, 10:10 #5
Цитата Сообщение от d7d1cd Посмотреть сообщение
специального оператора в С++ для этого нет?
Специального оператора нет.
1
Hikari
Хитрая блондиночка $)
1449 / 956 / 285
Регистрация: 21.12.2015
Сообщений: 3,798
02.09.2016, 10:10 #6
Цитата Сообщение от gru74ik Посмотреть сообщение
Ваши циклы в функцию или в лямбду
Вотъ вотъ-с.
И я того же мнения. Плюсую.
0
d7d1cd
197 / 126 / 36
Регистрация: 30.06.2011
Сообщений: 1,153
Завершенные тесты: 1
02.09.2016, 10:16  [ТС] #7
Цитата Сообщение от gru74ik Посмотреть сообщение
Оберните Ваши циклы в функцию или в лямбду и выходите с помощью return.
Это понятно. Спасибо за ответ.
Эммм... А что такое лямбда?
0
Hikari
Хитрая блондиночка $)
1449 / 956 / 285
Регистрация: 21.12.2015
Сообщений: 3,798
02.09.2016, 10:19 #8
Цитата Сообщение от d7d1cd Посмотреть сообщение
что такое лямбда?
https://ru.wikipedia.org/wiki/Анонимная_функция
1
nimazzzy
Заблокирован
02.09.2016, 10:19 #9
http://en.cppreference.com/w/cpp/language/lambda
1
d7d1cd
197 / 126 / 36
Регистрация: 30.06.2011
Сообщений: 1,153
Завершенные тесты: 1
02.09.2016, 10:26  [ТС] #10
Hikari, nimazzzy, спасибо за ссылки. Дома почитаю (на работе интернет урезан, эти сайты не открываются).
Может кто-то перепишет мой пример с циклами и покажет как использовать эту анонимную функцию?
0
nimazzzy
Заблокирован
02.09.2016, 10:35 #11
C++
1
2
3
4
5
6
7
8
    auto f = []()
    {
        for (int i = 1; i <= 10; i++)
            for (int j = 1; j <= 5; j++)
                if (i > 2)
                    return;
    };
    f();
0
gru74ik
Модератор
Эксперт CЭксперт С++
4196 / 1844 / 198
Регистрация: 20.02.2013
Сообщений: 4,990
Записей в блоге: 22
02.09.2016, 10:48 #12
d7d1cd, учтите, чтобы использовать лямбды, компилятор должен поддерживать стандарт C++11. И очень часто бывает так, что поддержку стандарта C++11 надо галками в настройках IDE отдельно включать, либо прописывать в файлах настройки проекта специальные строчки, чтобы поддержка С++11 включилась.
0
d7d1cd
197 / 126 / 36
Регистрация: 30.06.2011
Сообщений: 1,153
Завершенные тесты: 1
02.09.2016, 10:50  [ТС] #13
Цитата Сообщение от gru74ik Посмотреть сообщение
d7d1cd, учтите, компилятор должен поддерживать стандарт C++11. И очень часто бывает так, что поддержку стандарта C++11 надо галками в настройках IDE отдельно включать, либо прописывать в файлах настройки проекта специальные строчки, чтобы поддержка С++11 включилась.
Видимо у меня не включен стандарт С++11, так как приведенный пример в C++Builder XE8 вызывает ошибку Expression syntax.
Как включить?
0
MansMI
1290 / 1068 / 299
Регистрация: 08.01.2012
Сообщений: 4,068
02.09.2016, 10:52 #14
как вариант
C++
1
2
3
4
5
6
7
8
9
10
for(int i = 1; i <= 10; i++)
{
   int j;
   for(j = 1; j <= 5; j++)
   {
      .....
      if(почему-то) break;
   }
   if(j<=5) break;
}
0
d7d1cd
197 / 126 / 36
Регистрация: 30.06.2011
Сообщений: 1,153
Завершенные тесты: 1
02.09.2016, 10:56  [ТС] #15
MansMI, это конечно вариант, спасибо. Именно на таких вариантах-костылях у меня сейчас и работает код. Но хочется познать всю мощь языка С++
0
02.09.2016, 10:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2016, 10:56
Привет! Вот еще темы с ответами:

Вывести ряд простых чисел с использованием вложенного цикла - C++
Помогите написать программу вывода ряда простых чисел с использованием двойного цикла(цикл в цикле)

Как правильно прервать/возобновить цикл - C++
Такая вот проблема: есть часто встречающаяся функция ввода вещественного массива (как правило, большого). При вводе не цифры приходится все...

Как прервать цикл используя условия ? - C++
Есть цикл for(double i=1;i&lt;=?;i++) { s+=pow(((2*i)+1),4.0); }Мне нужно чтобы он останавливался когда я задам условие...

Как реализовать переход на следующую итерацию внешнего цикла из вложенного? - C++
Добрый вечер. Возможен ли в C++ переход на следующую итерацию внешнего цикла из вложенного? например: for(int i=0;i&lt;n;i++) {...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru