如何使用break和continue关键字控制Java循环?
·
一、break:终止整个循环
作用
直接结束当前所在循环,跳出循环体,执行循环后面代码。
1. 基础用法(单层循环)
// 输出1、2,i=3时直接结束循环
for (int i = 1; i <= 5; i++) {
if (i == 3) {
break;
}
System.out.println(i);
}
输出:
1
2
2. 多层循环:普通break只能跳出内层
// 内层break只结束内层循环,外层继续执行
for (int i = 1; i <= 2; i++) {
for (int j = 1; j <= 3; j++) {
if (j == 2) {
break;
}
System.out.print(j + " ");
}
System.out.println();
}
输出:
1
1
3. 带标签break:跳出指定外层循环
语法:标签名: 循环,break 标签名;
outer: // 给外层循环打标签
for (int i = 1; i <= 2; i++) {
for (int j = 1; j <= 3; j++) {
if (j == 2) {
break outer; // 直接终止外层循环
}
System.out.print(j + " ");
}
}
输出:
1
使用场景
满足条件不需要再循环,直接退出:查找数据找到后终止、密码输入正确退出循环。
二、continue:跳过本次循环,进入下一轮
作用
立刻结束当前这一次循环,剩余代码不执行,直接走到循环条件判断,开启下一轮。
1. 单层循环示例
// 跳过3,输出1 2 4 5
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue;
}
System.out.println(i);
}
输出:
1
2
4
5
2. while循环使用continue(坑点)
while中使用continue前必须更新变量,否则死循环:
int i = 1;
while (i <= 5) {
if (i == 3) {
i++; // 先自增再continue,防止死循环
continue;
}
System.out.println(i);
i++;
}
3. 带标签continue:跳过外层本轮循环
outer:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 2; j++) {
if (i == 2 && j == 1) {
continue outer; // 直接跳过外层这一轮,i++
}
System.out.println("i=" + i + ",j=" + j);
}
}
使用场景
过滤不需要的数据:跳过负数、跳过空值、只打印符合条件内容。
三、break vs continue 核心区别
break:彻底结束整个循环,循环不再执行;continue:仅跳过当前一次,循环还会继续下一次;
四、常见注意事项
break/continue后面不能写代码,会编译报错(永远执行不到)if(i==3){ break; System.out.println(); // 报错,不可达代码 }- do-while 使用continue,同样要保证变量更新;
- 增强for循环同样支持break、continue;
- 标签只能写在循环语句前,仅配合break/continue使用;
- 不要滥用多层标签,代码可读性变差。
更多推荐
所有评论(0)