Java中break、continue及标签等跳转语句的使用[上]

java 中跳转语句使用break、continue和标签,各自或组合完成相应的功能。

今天做题时遇到关于标签命名规范,顺便将跳转语句语法都看了一遍,很有收获。

在《Java编程思想》一书中,作者详细阐述,现将案例代码写在下面:

public class LabeledFor {

    public static void main(String[] args) {
        int i=0;
        outer:
            for(;true;){
                inner:
                    for(;i<10;i++){
                        System.out.println("i="+i);
                        if(i==2){
                            System.out.println("continue");
                            continue;
                        }
                        if(i==3){
                            System.out.println("break");
                            i++;    //otherwise i never gets incremented
                            break;
                        }
                        if(i==7){
                            System.out.println("continue outer");
                            i++;    //otherwise i never gets incremented
                            continue outer;
                        }
                        if(i==8){
                            System.out.println("break outer");
                            break outer;
                        }
                        for(int k=0;k<5;k++){
                            if(k==3){
                                System.out.println("continue inner");
                                continue inner;
                            }
                        }
                    }
            }

    }

}

运行结果见下图:

i=0
continue inner
i=1
continue inner
i=2
continue
i=3
break
i=4
continue inner
i=5
continue inner
i=6
continue inner
i=7
continue outer
i=8
break outer

  自认为比较重要的一点是,break中断for循环,而且是在抵达for循环的末尾之前,也就是说,递增表达式将不会执行。continue确不会跳过递增语句。

  同样的,这个例子中,当i==7的情况下,continue outer语句会跳到循环顶部,而且也会跳过递增。

  如果没有break outer,就没有办法从内部循环里跳出外部循环。这是由于break本身只能中断最内层的循环(continue同样如此)。

  如果想中断同时退出,简单地用一个return即可。

原文地址:https://www.cnblogs.com/jenkov/p/javajump-for.html