Java:这个冒号(:)在这段代码中做什么?

时间:2014-03-26 10:16:27

标签: java colon

public void go(){
    String o = "";
    z:
    for (int x = 0; x<3; x++) {
        for (int y = 0; y<2;y++) {
            if (x==1) 
                break;
            if (x==2 && y==1)
                break z;
            o = o + x+y;
        }
    }

    System.out.println(o);
}

4 个答案:

答案 0 :(得分:3)

定向label (或breakdirected continue。见下面添加的评论:

public void go(){
    String o = "";
    z:                       // <=== Labels the loop that follows
    for (int x = 0; x<3; x++) {
        for (int y = 0; y<2;y++) {
            if (x==1) 
                break;       // <=== Not directed, only breaks the inner loop
            if (x==2 && y==1)
                break z;     // <=== Directed break, breaks the loop labelled with `z`
            o = o + x+y;
        }
    }

    System.out.println(o);
}

答案 1 :(得分:0)

这是一种类似于旧goto指令的语法。当发生中断时,您将在“z”之后立即退出循环,在这种情况下是最外部的for循环。这也适用于继续声明。

答案 2 :(得分:0)

这是一个标签。您可以使用continue关键字跳过当前迭代并达到此点,同时跳过最里面的循环。

答案 3 :(得分:0)

基本上它是一个跳跃标记。请参见此处:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html(有一个名为搜索的跳转标记已实施并解释)