break可以离开当前switch、for、while、do while的程序块,并前进至程序块后下一条语句,在switch中主要用来中断下一个case的比较。在for、while与do while中,主要用于中断目前的循环执行。
continue的作用与break类似,主要用于循环,所不同的是break会结束程序块的执行,而continue只会结束其之后程序块的语句,并跳回循环程序块的开头继续下一个循环,而不是离开循环。
break/continue中的块、循环都是针对当前所处的“循环层”而言的。
在Java语句里,唯一能放标签的地方是在循环语句前面。而且循环语句跟标签之间不能有任何东西。
break与continue还可以配合标签使用,例如本来break只会离开for循环,设定标签与程序块,则可以离开整个程序块。范例3.33 BreakTest.java。
public class BreakTest {
public static void main(String[] args) {
back : {
for(int i = 0; i < 10; i++) {
if(i == 9) {
System.out.println("break");
break back;
}
}
System.out.println("test");
}
}
}
程序的执行结果会显示break;back是个标签,当break back;时,返回至back标签处,之后整个back程序块不执行而跳过,所以这个程序System.out.println("test");不会被执行。
continue也有类似的用法,只不过标签只能设定在for之前。范例3.34是一个简单的示范。ContinueTest.java
public class ContinueTest {
public static void main(String[] args) {
back1:
for(int i = 0; i < 10; i++){
back2:
for(int j = 0; j < 10; j++) {
if(j == 9) {
continue back1;
}
}
System.out.println("test");
}
}
}
continue配合标签,可以自由地跳至任何一层for循环,您可以试试continue back1与continue back2的不同。设定back1时,System.out.println("test");不会被执行。
------------------------------------------------------------
http://blog.csdn.net/webflash/archive/2009/06/14/4268344.aspx
1、break 语句用于终止最近的封闭循环或它所在的 switch 语句。控制传递给终止语句后面的语句(如果有的话)。
2、continue 语句将控制权传递给它所在的封闭迭代语句的下一次迭代。
1、break 语句在循环(for、for in,……)和switch等具有迭代选择特征的语句中使用,而且是终止最近的封闭代码块(即多重循环时,它只终止自己所在的循环),整体代码接在break语句后继续执行(如果break语句不是最后一行代码的话)。
2、continue语句与break语句使用场合类似,continue语句是不可以在单独的switch语句中使用,但可以在一个循环内的switch语句中使用。含有continue的迭代语句(或者叫循环语句),在遇到continue语句后,代码先不按照常规的从上往下的代码执行顺序执行,而是马上回到循环入口转入下一次循环。
3、break和continue语句在循环内的switch语句中使用时,是有些区别的。break是跳出本switch,switch后面的代码继续执行,而continue是不执行switch后的代码,可以理解为跳出循环(不止是switch语句),接着进入下一次循环。分别测试下面代码使用break和continue两种情况的输出,如果使用continue,你会发现程序找到Microsoft后,document.write代码不执行了,输出结果就比使用break少了一行。
- var company=new Array('Adobe','Apple','Google','Intel','Microsoft','Oracle','IBM','SUN');
- for (var i in company)
- {
- switch (company[i])
- {
- case 'Microsoft':
- continue;
- //break;
- }
- document.write('Me was run '+i);
- }