在Java中,循环的逻辑常用break、continue、某一个变量值来控制。其实在java中还存在一个LOOP,用在break、continue之后,标记循环应该跳出到的位置。下面用几个小demo来说明。

一、常用的break:跳出当前循环

import org.junit.Test;

public class LoopDemo {

    @Test
    public void testNormalBreak() {
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 4; j++) {
                System.out.println("i =" + i + "; j = " + j);
                if(j == 2) {
                    break;
                }    
            }
        }
    }
}

  运行结果如下

  

java loop语句 java的loop_i++

 二、break后标记loop,跳出循环到指定位置

import org.junit.Test;

public class LoopDemo {

    @Test
    public void testLoopBreak() {
        loop:
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 4; j++) {
                System.out.println("i =" + i + "; j = " + j);
                if(j == 2) {
                    break loop;
                }    
            }
        }
    }
}

  运行结果如下

  

java loop语句 java的loop_i++_02

由break的两个简单的demo可以看出,双重循环的场景下,break只是跳出当前循序;break后加上标记位,跳出循环到标记位指定的位置。

三、常用的continue:跳过本次循环

import org.junit.Test;

public class LoopDemo {
    
    @Test
    public void testNormalContinue() {
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 4; j++) {
                if(j == 2) {
                    continue;
                }
                System.out.println("i =" + i + "; j = " + j);
            }
        }
    }
}

  运行结果如下

  

java loop语句 java的loop_System_03

四、常用的continue:跳过本次循环

import org.junit.Test;

public class LoopDemo {

    @Test
    public void testLoopContinue() {
        loop:
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 4; j++) {
                if(j == 2) {
                    continue loop;
                }
                System.out.println("i =" + i + "; j = " + j);
            }
        }
    }
}

 运行结果如下

  

java loop语句 java的loop_i++_04

  由continue的两个简单的demo可以看出,双重循环的场景下,continue只是跳过本次循环;continue后加上标记位,跳过循环到标记位指定的位置。

  日常开发中通常用不到loop标记位的功能,官方给出的建议是尽量不要这样使用,在jdk8中BufferedReader的readLine方法中看到了这样的用法,特此记录一下。