Мне нужна помощь, чтобы понять этот код

Собственно, это первый раз, когда я вижу такой код:

class A
{
    public static void main(String args[])
    {
        outer : for(int i=0;i<10;i++)
        {
            for(int j=0;j<10;j++)
            {
                if(j > i)
                {
                    System.out.println();
                    continue outer;
                }
                System.out.print("  "  +( i *j ));
            }
        }
        System.out.println();
    }
}

две строки я не понимаю:

outer : for(int i=0;i<10;i++) // this seems similar to 'for each'?

continue outer; // I know that 'continue' will break the loop and continue the next turn, but what will do in this situaton?

Ответ 1

outer : for(int i=0;i<10;i++) 

определяет метку для внешнего цикла, называемую outer

continue outer; 

означает, перейдите к следующей итерации цикла с меткой outer

Ответ 2

Часть outer: - это метка. Это в основном обозначение цикла. Сам цикл работает так же нормально.

continue outer; означает "продолжить возврат к началу тела цикла с меткой outer" (после инкремента и тестирования i, конечно). Это похоже на то, что оператор break; выходит из внутреннего цикла, а затем сразу же имеет нормальный оператор continue; для продолжения следующего шага внешнего цикла.

Ответ 3

outer - это метка, когда вызывается continue outer;, код будет переходить на метку outer и продолжить оттуда. Причина этого в этом случае заключается в том, что кодер хочет выйти из внутреннего цикла, когда j>i и продолжить внешний цикл.

Ответ 5

Outer: это метка, вместо продолжения внутреннего цикла вы продолжаете внешний цикл, указав метку

См. также http://www.janeg.ca/scjp/flow/labels.html

Ответ 6

outer - это метка, а continue outer в основном выполняет goto, но продолжает цикл, а не запускает его снова.

Ответ 7

outer: определяет метку "внешний", которую вы можете использовать в break и continue. Это разрешено только перед конструкциями цикла (for, while, do).

Итак, continue outer означает "продолжить с внешним циклом" или "применить continue к циклу с соответствующей меткой".