标号与continue,break

Posted on 2007-09-18 20:48 流浪韩 阅读(534) 评论(0)  编辑  收藏 所属分类: J2SE

标号与continue,break


    可以给语句块加标号赋予它们名称,标号位于语句之前。标号只能被continue和break引用。格式如下:
    label:statement
    语句前只允许加一个标号,标号后面不能跟大括号。通过用break后加标号对处于标号中的语句进行控制。往往标号后是for.while.do-while等循环。
    通过用标号,我们可以对外层循环进行控制
下面是用continue控制标号
public class Label {

    public static void main(String[] args) {
        System.out.println("i j");
        search:
            for (int i = 0; i < 3; i++) {
                for (int j = 0; j < 50; j++) {
                    if (j == 3)
                        continue search;
                    System.out.println(i+" "+j);
                }
            }
    }
}
输出如下:

i j
0 0
0 1
0 2
1 0
1 1
1 2
2 0
2 1
2 2


可以看出内层循环并没有执行50次,而到了continue时就跳到最外层循环去了,continue执行后执行的是i++.

 

下面是用break控制标号

public class Label {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("i j");
        search:
            for (int i = 0; i < 3; i++) {
                for (int j = 0; j < 50; j++) {
                    if (j == 3)
                        break search;
                    System.out.println(i+" "+j);
                }
            }
    }
}

输出如下:

i j
0 0
0 1
0 2
 

可以看出内层循环也没有执行50次,而且break后循环就再也没执行。break跳出的是最外层循环,跳出了标号的范围。

 

break跳出标号对查询一条记录来说比较有用,当查出自己想要的一条记录时,就可以跳出循环了,不用再执行了。

其中标号的另一个用意就在于让程序员不去用goto(替代了goto),写出更安全,干净的代码


只有注册用户登录后才能发表评论。


网站导航: