Java转移语句break和continue
Java语言提供了四种转移语句:break,continue,return和throw。转移语句的功能是改变程序的执行流程。本篇只介绍break和continue语句。break语句可以独立使用,而continue语句一般用在循环结构的循环体中用以跳出当前循环。
break语句
break语句通常有不带标签和带标签的两种形式:
break; //不带标签
break lab; //带标签
//其中:break是关键字,lab是程序编写人员定义的标签
break语句虽然可以独立使用,但通常主要用于switch结构和循环结构中,控制程序的执行流程转移。break语句的应用有下列三种常见的情况:
1.break语句用在switch/case语句中,其作用是强制退出switch结构,执行switch结构后的语句。这一功能在以前博客讲述switch分支选择结构的时候有过陈述。
2.break用在单层循环结构的循环体中,其作用是强制退出循环结构,其执行流程如下图所示。若程序中有内外两层循环,而break语句写在内循环中,则执行break语句只能退出内循环,而不能退出外循环。想要退出外循环,可以使用带标签的break语句。
3.break lab语句用在循环语句中(必须在外循环入口语句的前方写上lab标签),可使程序流程退出标签所指的外循环。执行流程如下图所示。
示例1:
int num = 0;
while(true){
num++;
if(num == 5) break; //当num = 5时,退出while循环
}
示例2:
p1: for(int i = 1;i<=10;i++){
for(int j = 1;j<=10;j++){
if(i*j == 10) break p1; //当i*j = 10时,退到标签所指的循环外
}
}
continue语句
continue语句只能用于循环语句中,其作用是使循环短路。它有下述两种形式:
continue; //不带标签
continue lab; //带标签
//其中:continue是关键字,lab是程序编写人员定义的标签
1.continue语句也被称为循环短路语句,在循环结构中,当程序执行到continue语句,将终止本次循环,使程序返回到循环入口处执行下一次循环,循环体中写在continue后面的语句将不再执行。
2.当程序中嵌套多层循环时,为从内循环跳到外循环,可使用带标签的continue lab语句。此时应在外循环的入口语句前方加上标签。
int i,j;
p1: for(i = 1;i<10;i++){
for(j = 1;j<i;j++){
if(i == 3) continue; //当i = 3时,不论j为何值,均不执行后面两条语句
if(i == 9) continue p1; //当j = 9跳到标签所指的外循环入口处。
}
}
MSDN关于break和continue语句的帮助说明:
1.break语句用于终止最近的封闭循环或它所在的switch语句。控制传递给终止语句后面的语句(如果有的话)。
2.continue语句将控制权传递给它所在的封闭迭代语句的下一次迭代。
博主学识尚浅,对这两句话目前无法完全理解。如果有大佬看到欢迎在评论区向各位初学者解释一下。