这篇文章主要介绍了Java for循环标签跳转到指定位置,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
Java for循环标签跳转到指定位置
大家是否见过这种for循环,在for循环前加了个标记的:
1
2
3
4
5
6
outerLoop:
for (; ; ) {
for (; ; ) {
break outerLoop;
}
}
我之前有一次在公司业务代码中见过有这种写法的,没在意,今天在看JDK线程池的代码时,又看到ThreadPoolExecutor的addWorker方法中有这种写法。于是就查了相关资料,也比较简单。
总结下它的用法吧:
上面代码中的outerLoop是一个标记外层for循环的标签,它可以随便命名。
该标签主要用于for循环嵌套的情况,结合break和continue跳转到外层for循环;
我们知道,break的作用是跳出当前循环,continue的作用是结束本次循环,继续下次循环。如果有双层for循环,在内层的for循环中,想直接跳出所有循环,使用break outerLoop就可以实现;而continue outerLoop的作用是结束外层的本次循环,继续外层的下一次循环。
举个例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static void main(String[] args) {
String[] strings = {"1", "2", "3"};
outerLoop:
for (String str : strings) {
for (; ; ) {
if (str.equals("1")) {
break;
}
if (str.equals("2")) {
continue outerLoop;
}
if (str.equals("3")) {
break outerLoop;
}
}
System.out.println("str.equals(1)");
}
System.out.println("str.equals(3)");
}
上面代码中双重for循环,执行逻辑为:
第一个if跳出当前内层循环,会打印str.equals(1);
第二个if执行外层for循环的下一次循环;
最后一次循环,str的值为3,跳出外层循环,结束整个循环,然后打印str.equals(3)。
这种for加标签的写法确实很少见,学Java的时候都没学这个东西,实际写业务代码的时候能避免就避免,内层循环能抽就抽个方法。如果业务太复杂抽不了,这种写法也不失为一种策略。
补充:java for 循环continue 跳转到外层
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
for (int i = 0; i < cardRecordsList.size(); i++) {
BomCardRecords bomCardRecords = cardRecordsList.get(i);
String recordsContent = bomCardRecords.getRecordsContent();
if (i == 0){
recordsContent += "$$$状态";
}
String[] contentArr = recordsContent.split("\\$\\$\\$", -1);
List<String> needData = new ArrayList<>();
for (int j = 0; j < contentArr.length; j++) {
String contentColumn = contentArr[contentArr.length - 1];
if (StringUtils.isBlank(state)) {
clearUpData(columns, partList, contentArr, columnArr, needData);
continue;
} else {
String[] stateArr = state.split(" ");
List<String> stateList = Arrays.asList(stateArr);
contentColumn = contentColumn.split(",")[0];
if (contentColumn.equals("状态") || stateList.contains(contentColumn)) {
clearUpData(columns, partList, contentArr, columnArr, needData);
continue;
}
}
}
}
continue 跳出循环
如上代码我们是嵌套循环 , 当我们循环完毕时需要跳出最外层循环 , 我们只需要在跳转的的地方这么来写
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
my:
for (int i = 0; i < cardRecordsList.size(); i++) {
BomCardRecords bomCardRecords = cardRecordsList.get(i);
String recordsContent = bomCardRecords.getRecordsContent();
if (i == 0){
recordsContent += "$$$状态";
}
String[] contentArr = recordsContent.split("\\$\\$\\$", -1);
List<String> needData = new ArrayList<>();
for (int j = 0; j < contentArr.length; j++) {
String contentColumn = contentArr[contentArr.length - 1];
if (StringUtils.isBlank(state)) {
clearUpData(columns, partList, contentArr, columnArr, needData);
continue my;
} else {
String[] stateArr = state.split(" ");
List<String> stateList = Arrays.asList(stateArr);
contentColumn = contentColumn.split(",")[0];
if (contentColumn.equals("状态") || stateList.contains(contentColumn)) {
clearUpData(columns, partList, contentArr, columnArr, needData);
continue my;
}
}
}
}
这样我们就可continue到最外层循环了
没有合适的资源?快使用搜索试试~ 我知道了~
Java for循环标签跳转到指定位置的示例详解
共1个文件
txt:1个
需积分: 5 0 下载量 103 浏览量
2023-07-10
22:02:55
上传
评论
收藏 2KB RAR 举报
温馨提示
Java for循环标签跳转到指定位置的示例详解
资源推荐
资源详情
资源评论
收起资源包目录
Java for循环标签跳转到指定位置的示例详解.rar (1个子文件)
Java for循环标签跳转到指定位置的示例详解.txt 5KB
共 1 条
- 1
资源评论
小徐博客
- 粉丝: 1397
- 资源: 827
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 信息办公个人求职管理系统-jobgljsp.rar
- 信息办公一流网络JSP网络管理系统 v1.0-yljsp10.rar
- chirpstack学习
- 管家婆辉煌、财贸、工贸、服装,食品,千方模拟狗
- 基于python开发的工业环境老鼠检测+源码+文档(毕业设计&课程设计&项目开发)
- USB转以太网的芯片SR9900全套设计资料包括(参考设计原理图PCB+ Linux -Windows驱动程序+量产工具)
- 信息办公XML考试系统-xmlks.rar
- 基于python开发的无人机图像目标检测+实验数据+开发文档+操作流程+源码(毕业设计&课程设计&项目开发)
- 全球智能商品管理与优化系统
- IDM下载器(电脑小工具)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功