我需要帮助才能理解这段代码

时间:2011-03-25 17:03:56

标签: java

实际上,这是我第一次看到这样的代码:

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?

7 个答案:

答案 0 :(得分:10)

outer:部分是标签。它基本上标记了循环。循环本身就像正常一样。

continue outer;表示“继续回到标记为outer的循环体的开头”(当然,在递增并测试i之后)。这有点像使用break;语句退出内部循环,然后立即使用正常的continue;语句继续外循环的下一步。

答案 1 :(得分:4)

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

定义外部循环的标签,称为outer

continue outer; 

表示转到标记为outer

的循环的下一次迭代

答案 2 :(得分:3)

outer是一个标签,当调用continue outer;时,代码将跳转到outer标签并从那里继续。在这种情况下,它背后的原因是编码器想要在j>i时退出内循环并继续外循环。

答案 3 :(得分:2)

答案 4 :(得分:1)

Outer:是一个标签,而不是继续内循环,你通过指定标签继续外循环

另见http://www.janeg.ca/scjp/flow/labels.html

答案 5 :(得分:1)

outer是一个标签,而continue outer基本上是goto,但会继续循环而不是重新开始。

答案 6 :(得分:1)

outer:定义了一个标签“外部”,您可以在breakcontinue中使用该标签。它只允许在循环结构前面(forwhiledo)。

所以continue outer表示“继续使用外部循环”或“将continue应用于具有匹配标签的循环”。