break和continue的使用
使用范围:break主要用于switch-case和循环结构中.而continue主要用于循环结构中。
break是直接跳出一个最近的循环,而continue只是跳出当前的一次循环,如果满足循环条件,循环还会继续进行。
public class Main {
public static void main(String[] args) {
int n=5,j=12;
while(n<=j){
System.out.print(n+"\t");
n++;
break;
}
System.out.println("n="+n);
}
}
如上例,循环只执行了一次,执行到break就会跳出循环,从而得到结果为5 ,n=6,并且不在进入循环体。
public class Main {
public static void main(String[] args) {
int n=5,j=12;
while(n<=j){
System.out.print(n+"\t");
n++;
continue;
}
System.out.println("n="+n);
}
}
而换成continue后,循环会执行到不符合循环条件为止,即分别输出5到12的所有数和n=13,这说明了continue只是在循环完成后跳出了一次循环,对后续循环无直接影响。
注意:1.在if语句中使用了continue或者break后,不能再加执行语句。
2.break只能跳出最近的一层循环,不可大意了!在多重循环中break也只能跳出一层,但是我们可以指定它跳哪一层,比如我用9*9乘法表的代码,对于第二层循环我不想使循环条件中的j<=n,我想具体写一个数,那么我就可以用定向的continue加if语句实现,如下:
public class Main {
public static void main(String[] args) {
int n,j;
text:for(n=1;n<10;n++) {
for(j=1;j<10;j++){
System.out.print(n + "*" + j + "=" + (n * j) + "\t");
if (j==n){
System.out.println();
continue text;
}
}
}
}
}
经过观察可以发现,在第一层for前多了个“text:”,在continue后多了个空格+text。这就是定向的结束外层循环,这个continue虽然在内层写着,但是它结束的是外层的循环(即有text:标记的那个循环),即满足条件就会执行结束外层当次循环的指令,从而进行下一次循环。所以,你若想结束一层与continue/break不相接近的循环,只需要在循环前命名,在continue/break后加所命的名即可,而且不管continue/break在哪,只要你给它的后面加的命名匹配,它都会找到它的另一半(即叫这个名字的循环)。(break也是如此,我就不举例子了,大家自行探索)