在循环里面嵌套了循环后,如果单纯的使用break跳出内循环,那么还会继续执行这个内循环后面的程序。而要在内循环里面通过条件判断直接跳出所有循环就需要多个判断条件。这个时候如果使用循环标志就可以直接跳出到指定的位置。循环标志的使用可以让break和continue更加灵活。
下面这段代码可以很明显的看出有没有标志位的区别
package _3_5_test; import java.util.Scanner; public class FiftyTest { public static void main(String[] args) { // TODO Auto-generated method stub boolean flag1 = true; out: while (flag1) { System.out.println("(有标志位)for循环前面+++++++++"); for (int i = 0; i < 10; i++) { if (i == 4) { flag1 = false; break out; } } System.out.println("(有标志位)for循环后面--------"); } System.out.println(""); boolean flag2 = true; while (flag2) { System.out.println("(没有标志位)for循环前面+++++++++"); for (int i = 0; i < 10; i++) { if (i == 4) { flag2 = false; break; } } System.out.println("(没有标志位)for循环后面--------"); } } }
实现效果:
可以看出,如果使用了循环标志跳出循环,可以直接跳出所有的循环;而如果没有使用循环标志,就只能跳出当前的内循环,内循环后面的程序还是会继续执行。
标志位的使用很容易,在需要程序跳转的地方声明一个对象,比如:
out:
在使用break或者continue的时候在后面加上这个标志位就行了:break out;