循环控制包含两个方面的内容,一方面是控制循环变量的变化方式,另一方面是控制循环的跳转需要用到break和continue两个关键字,这两条跳转语句的跳转效果不同,break是中断循环,continue是执行下一次循环。
1.break语句
在循环结构中,可以使用break语句跳出当前循环体,从而中断当前循环。示例代码:
public class Demo3 {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println("i="+i);
//当i=5时跳出循环
if(i==5){
break;
}
}
}
}
运行结果截图:
如果遇到在内层循环使用break语句时,break语句只会使程序跳出内层的循环结构,不会影响到外层的循环,示例代码:
for (int i = 0; i < 3; i++) {
for (int j = 0; j <5; j++) {
if(j==3){//当j=3时跳出内层循环
break;
}
System.out.println("i="+i+",j="+j+";");
}
}
运行结果截图:
如果需要使用break跳出外层循环,可以通过“标签”来实现,标签名可以是任意标识符,语法如下:
标签名:循环体{
brake 标签名;
}
示例代码:
closure:for (int i = 0; i < 3; i++) {
for (int j = 0; j < 6; j++) {
if(j==5){
break closure;//跳出closure标签标记的循环体
}
System.out.println("i="+i+",j="+j+";");
}
}
运行结果截图:
2.continue语句
continue语句是对break语句的补充,continue不是立即跳出循环体,而是跳过本次循环结束前的语句,回到循环的条件测试部分,重新开始执行循环。示例代码:
for (int i = 1; i < 10; i++) {
if(i%2 !=0){//如果i为奇数时跳到下一循环
continue;
}
System.out.println("i="+i);
}
运行结果截图:
与break语句一样,continue也支持标签功能,语法结构也相同,示例代码:
completion:for (int i = 0; i < 5; i++) {
for (int j = 1; j < 3; j++) {
if(i==2 || i==3){
continue completion;
}
System.out.println("i="+i+"j="+j+";");
}
}
运行结果截图: