例1:跳出单层循环
@Test
public void test1() {
for (int i = 0; i < 5; i++) {
if (i == 2) {
break;
} else {
System.out.println("i=" + i);
}
}
}
执行结果:
i=0
i=1
例2:跳过单层当次循环
@Test
public void test2() {
for (int i = 0; i < 5; i++) {
if (i == 2) {
continue;
} else {
System.out.println("i=" + i);
}
}
}
执行结果:
i=0
i=1
i=3
i=4
例3:跳出双层的内部当次循环
@Test
public void test3() {
for (int i = 1; i < 4; i++) {
for (int j = 0; j < 4; j++) {
if (i == 2) {
break;
} else {
System.out.println("i=" + i + " ;j=" + j);
}
}
}
}
执行结果:
i=1 ;j=0
i=1 ;j=1
i=1 ;j=2
i=1 ;j=3
i=3 ;j=0
i=3 ;j=1
i=3 ;j=2
i=3 ;j=3
例4:跳出整个双层循环
@Test
public void test4() {
flag: for (int i = 1; i < 4; i++) {
for (int j = 0; j < 4; j++) {
if (i == 2) {
break flag;
} else {
System.out.println("i=" + i + " ;j=" + j);
}
}
}
}
执行结果:
i=1 ;j=0
i=1 ;j=1
i=1 ;j=2
i=1 ;j=3
例5:跳出整个双层循环[与例4作用同,但推荐这种写法]
@Test
public void test5() {
boolean flag = false;
for (int i = 1; i < 4; i++) {
for (int j = 0; j < 4; j++) {
if(i==2) {
flag = true;
}else {
System.out.println("i=" + i + " ;j=" + j);
}
}
if (flag) {
break;
}
}
}
执行结果:
i=1 ;j=0
i=1 ;j=1
i=1 ;j=2
i=1 ;j=3
例6:跳出内部当次继续执行
@Test
public void test6() {
boolean flag = false;
for (int i = 1; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if(i==2) {
flag = true;
break;// 跳出循环
}else {
System.out.println("i=" + i + " ;j=" + j);
}
}
if (flag) {
System.out.println("i="+i+"此段代码将不执行");
flag = false;
continue;
}
}
}
执行结果:
i=1 ;j=0
i=1 ;j=1
i=1 ;j=2
i=1 ;j=3
i=1 ;j=4
i=2此段代码将不执行
i=3 ;j=0
i=3 ;j=1
i=3 ;j=2
i=3 ;j=3
i=3 ;j=4
i=4 ;j=0
i=4 ;j=1
i=4 ;j=2
i=4 ;j=3
i=4 ;j=4