Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
some_name
Вежливость-главное оружие
227 / 226 / 86
Регистрация: 19.02.2013
Сообщений: 1,441
1

Как вырваться из циклов

13.11.2014, 12:25. Просмотров 634. Ответов 9
Метки нет (Все метки)

Здравствуйте!

Допустим у нас есть такая конструкция:

Java
1
2
3
4
5
6
for(int y = 0; y < h; ++y){
    for(int x = 0; x < w; ++x){
        for(int k = 0; k < l; ++k){
            if(condition) {
                                 // do something
                        }
При выполнения условия нужно выйти из всех трех циклов. Я делаю так:
Java
1
2
3
4
5
6
7
8
9
boolean isRun = true;
for(int y = 0; isRun && y < h; ++y){
    for(int x = 0; isRun && x < w; ++x){
        for(int k = 0; isRun && k < l; ++k){
            if(condition) {
                // do something
                isRun = false;
                break;
            }
Как еще можно вырваться из циклов?

Заранее спс!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2014, 12:25
Ответы с готовыми решениями:

Как получить сумму и произведение циклов с использованием одной строки циклов
Как получить сумму и произведение циклов с использованием одной строки циклов,...

Как из этих циклов сделать один? JAVA
Мне нужно было сосчитать количество товара на складе, как видно по коду помимо...

как выйти из циклов
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt;...

Как задать количество циклов в foreach?
Доброго времени суток! Я не силен в php, поэтому заранее прошу сильно не...

Как выходить из нескольких вложенных циклов?
Столкнулся с ситуацией что нужно выходить из нескольких циклов при определенных...

9
reisal78
907 / 657 / 221
Регистрация: 28.04.2013
Сообщений: 1,864
13.11.2014, 13:11 2
Java
1
2
3
4
5
6
7
8
lbl:
for(int y = 0; y < h; ++y){
    for(int x = 0; x < w; ++x){
        for(int k = 0; k < l; ++k){
            if(condition) {
                                 // do something
                break lbl;
                        }
Добавлено через 1 минуту
110 стр Эккеля
1
ildwine
Супер-модератор
3047 / 1924 / 1238
Регистрация: 04.03.2013
Сообщений: 4,700
Записей в блоге: 1
13.11.2014, 13:25 3
Можно использовать конструкцию
Java
1
break метка
для выхода из нескольких вложенных циклов
Пример из Г. Шилдта (стр. 141)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//использование оператора break в качестве цивилизованной формы 
//оператора goto
class BreakLoop {
  public static void main(String[] args) {
    outer: for (int i=0; i<3; i++) {
      System.out.print("Проход " + i + ": ");
      for (int j=0; j < 100; j++) {
        if (j == 10) break outer; //выход из обоих циклов
        System.out.print(j + " ");
      }
      System.out.print("Эта строка не будет выводиться");
    }
    System.out.println("Циклы завершены");
   }
 }
0
turbanoff
Эксперт Java
4019 / 3754 / 742
Регистрация: 18.05.2010
Сообщений: 9,329
Записей в блоге: 11
Завершенные тесты: 1
13.11.2014, 14:56 4
Еще можно выделить ваши циклы в отдельный метод и использовать return.
0
SmittWesson
212 / 187 / 21
Регистрация: 04.06.2014
Сообщений: 1,308
13.11.2014, 15:05 5
Ха-ха-ха. Костное мышление структурного программёрщика.
Забудь, о всяких постуклатах когда звезда горит на латах.

Это недоструктурщики придумали, что goto, недостойна внимания. Отсюда вся ересь.
Хотите им уподобиться? Флаг в руки, пирожок в зубы...
0
turbanoff
Эксперт Java
4019 / 3754 / 742
Регистрация: 18.05.2010
Сообщений: 9,329
Записей в блоге: 11
Завершенные тесты: 1
13.11.2014, 16:51 6
SmittWesson,
0
Миниатюры
Как вырваться из циклов  
Сэмён
5 / 5 / 1
Регистрация: 28.11.2013
Сообщений: 72
13.11.2014, 23:44 7
приравняй переменные, которые цикл воротят, к конечным числам и делов
1
turbanoff
Эксперт Java
4019 / 3754 / 742
Регистрация: 18.05.2010
Сообщений: 9,329
Записей в блоге: 11
Завершенные тесты: 1
14.11.2014, 00:57 8
Сэмён, худший вариант из предложенных.
0
SmittWesson
212 / 187 / 21
Регистрация: 04.06.2014
Сообщений: 1,308
14.11.2014, 08:02 9
Цитата Сообщение от turbanoff Посмотреть сообщение
Сэмён, худший вариант из предложенных.

Не по теме:

Предложите лучший.
Писать на стенах туалетов,
Признаться, право, не грешно.
Среди дерьма, мы в все - поэты.
Среди поэтов, все .......

0
some_name
Вежливость-главное оружие
227 / 226 / 86
Регистрация: 19.02.2013
Сообщений: 1,441
22.11.2014, 16:57  [ТС] 10
А с помощью метки попасть вперед цикла не получится?

У меня такой вариант не работает:
Java
1
2
3
4
5
6
7
8
for(int y = 0; y < h; ++y){
    for(int x = 0; x < w; ++x){
        for(int k = 0; k < l; ++k){
            if(condition) {
                                 break next;
                        }
next:
//do something
0
22.11.2014, 16:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2014, 16:57

Как написать программу с использованием циклов
Дано значение x и натуральное число n. Вычислить сумму S. n=10

Как правильно располагать несколько циклов while ?
Можно ли вот так располагать несколько циклов while ? или между циклами нужны...

Как уничтожаются локальные данные циклов?
Здравствуйте, такой вопрос, вот говорят, что в цикле for на каждой итерации все...


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

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

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