天天看点

break和continue与标签

“break"和"continue"我们常用来控制循环流程

break的作用是强行停止循环不继续执行

continue的作用是停止当前执行的迭代,进入下一次迭代

标签是一种后面跟有”:"的标识符

public static void main(String[] args) {
        out:
        for (int i=0;i<4;i++){
            inner:
            for (int j=0;j<6;j++){
                System.out.println("j="+j);
                if (j==1){
                    System.out.println("continue");
                    continue ;
                }
                if (j==3){
                    System.out.println("continue out;");
                    System.out.println("i="+i);
                    continue out;
                }
                if (i==1){
                    System.out.println("break");
                    System.out.println("i="+i);
                    break ;
                }
                if (i==2){
                    System.out.println("break out");
                    System.out.println("i="+i);
                    break out;
                }
            }
        }
    }
           

运行结果:

break和continue与标签

注意观察:

  1. continue out与break效果相似,但意义是不同的,continue out是跳转到out标签,继续执行out标签所指的循环,而break是结束了inner标签所指的循环,但此时out标签没被停止,所以继续执行out标签所指循环。
  2. 原本应执行4次的外循环,只执行了3次。因为第二次外循环break跳转到了out标签,对应的out标签所指循环就结束了,也就不会继续执行了。

引入标签是为了更好的理解break与continue。

continue会跳转到指定的标签后,继续执行下面的循环,而break跳转到指定的标签后,会停止标签所指的循环。在没有指定时,continue与break默认标签为最近的标签。