循环中的continue和break
break和continue关键字是我们在循环中经常用到的
一般break是指终止循环,使整个循环不再继续
而continue是跳过本次循环,继续下一轮的循环
那么在双重循环中又是怎样的呢?
先来看 break关键字
public static void main(String[] args) {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
if(j==1){
//终止内层循环 ,继续外层循环
break;
}
System.out.println("i="+i+";j="+j);
/*
i=0;j=0
i=1;j=0
i=2;j=0
i=3;j=0
*/
}
}
}
如果想要终止外层循环(整个循环)呢,可以给循环加个标签(就像下面代码块中的outer和inner)
public static void main(String[] args) {
outer:
for (int i = 0; i < 4; i++) {
inner:
for (int j = 0; j < 4; j++) {
if(j==1){
break outer ;//终止整个循环
/*
i=0;j=0
*/
}
}
如果是外层循环中的变量满足条件时使用break,continue 关键字
public static void main(String[] args) {
outer:
for (int i = 0; i < 5; i++) {
inner:
for (int j = 0; j < 5; j++) {
if(i==1){ //i==1时外层循环就不再继续,循环终止
break outer;
}
System.out.println("i="+i+";j="+j);
/*
i=0;j=0
i=0;j=1
i=0;j=2
i=0;j=3
i=0;j=4
*/
}
}
}
如果没有使用outer标签的话,与使用continue关键字(无论是否加outer/inner标签)的效果是一样的
public static void main(String[] args) {
outer:
for (int i = 0; i < 5; i++) {
inner:
for (int j = 0; j < 5; j++) {
if(i==1){
//跳过i==1时的循环,继续下一外层循环
break ;
}
System.out.println("i="+i+";j="+j);
/*
i=0;j=0
i=0;j=1
i=0;j=2
i=0;j=3
i=0;j=4
i=2;j=0
i=2;j=1
i=2;j=2
i=2;j=3
i=2;j=4
i=3;j=0
i=3;j=1
i=3;j=2
......
*/
}
}
那么对于continue关键字,对于针对外层循环变量的条件,与上述代码块的结果是一样的,而对于针对内层循环变量的条件
public static void main(String[] args) {
outer:
for (int i = 0; i < 4; i++) {
inner:
for (int j = 0; j < 4; j++) {
if(j==1){
//跳过了内层的这一循环,接着走内层的下一循环
continue ;//加不加innner都一样
}
System.out.println("i="+i+";j="+j);
/*
i=0;j=0
i=0;j=2
i=0;j=3
i=1;j=0
i=1;j=2
i=1;j=3
i=2;j=0
i=2;j=2
i=2;j=3
i=3;j=0
i=3;j=2
i=3;j=3
*/
}
}
}
还没有评论,来说两句吧...