Придание названия петле - PullRequest
14 голосов
/ 30 марта 2011

Просматривая вопросы и ответы на этом форуме, я обнаружил фрагмент кода, в котором имена были даны циклам, чтобы использовать их для перерыва. Нравится

nameofloop:
    for(){
        for(){
             if(){ break nameofloop;}
        }
    }

Я новичок в программировании, и я не видел этого раньше. У меня вопрос, какие еще существуют циклы именования?

Ответы [ 6 ]

8 голосов
/ 30 марта 2011

Это не помеченный цикл, это просто метка, которую вы размещаете где угодно, и затем вы можете «прервать» или «продолжить» в зависимости от ваших условий. Вы также можете использовать во вложенном цикле if-else с for, чтобы разбить несколько циклов, украшенных if-else, так что вы можете избежать установки большого количества флагов и проверки их в if-else, чтобы продолжить или нет в этом вложенном цикле. уровень.

Его использование не рекомендуется, так как напоминает goto и вызывает спагетти-код.

Лично я использовал только один раз, время назад, чтобы разорвать цикл for внутри других двух циклов for с помощью if-else и продолжить во внешнем цикле, так как break внутри цикла разрывает этот цикл, но вы продолжаете в внешний цикл, а не самый внешний, который был в моем случае.

6 голосов
/ 30 марта 2011

Вы также можете сказать:

continue nameofloop;

... чтобы перейти к началу именованного цикла. Я не думаю, что есть другие варианты использования меток в Java.

5 голосов
/ 23 августа 2013

Он известен как помеченный разрыв, который является формой оператора разветвления.Вы можете увидеть все примеры в Официальной документации .

2 голосов
/ 30 марта 2011

Официально я считаю, что это называется «помеченным перерывом». Это полезно для разрыва вложенных циклов, таких как:

found:
    for (int i = 0; i < 100; i++)
        for (int j = 0; j < 100; i++)
            if ( /* Some condition is met */)
                break found;

Не думаю, что это полезно для чего-то еще.

1 голос
/ 30 марта 2011

Я думаю, что это единственный случай, когда он используется.И это не то, что обычно используется, потому что обычно более читабельно изменить значение флага, чтобы преждевременно завершить цикл.

0 голосов
/ 08 декабря 2016
  1. Создать массив (int) размером 10.

  2. Позвольте пользователю назначить значения - (используйте цикл for).

  3. Найти общее и среднее значений, хранящихся в массиве - (используйте цикл for).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...