Python 官方文档:入门教程 => 点击学习
Java for循环标签跳转到指定位置 大家是否见过这种for循环,在for循环前加了个标记的: outerLoop: for (; ; ) { for (; ; ) {
大家是否见过这种for循环,在for循环前加了个标记的:
outerLoop:
for (; ; ) {
for (; ; ) {
break outerLoop;
}
}
我之前有一次在公司业务代码中见过有这种写法的,没在意,今天在看jdk线程池的代码时,又看到ThreadPoolExecutor
的addWorker
方法中有这种写法。于是就查了相关资料,也比较简单。
总结下它的用法吧:
outerLoop
是一个标记外层for
循环的标签,它可以随便命名。break
和continue
跳转到外层for循环;我们知道,break
的作用是跳出当前循环,continue
的作用是结束本次循环,继续下次循环。如果有双层for循环,在内层的for循环中,想直接跳出所有循环,使用break outerLoop
就可以实现;而continue outerLoop
的作用是结束外层的本次循环,继续外层的下一次循环。
举个例子:
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的时候都没学这个东西,实际写业务代码的时候能避免就避免,内层循环能抽就抽个方法。如果业务太复杂抽不了,这种写法也不失为一种策略。
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 跳出循环
如上代码我们是嵌套循环 , 当我们循环完毕时需要跳出最外层循环 , 我们只需要在跳转的的地方这么来写
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循环标签跳转到指定位置的文章就介绍到这了,更多相关java跳转到指定位置内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: Java for循环标签跳转到指定位置的示例详解
本文链接: https://www.lsjlt.com/news/213679.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
一口价域名售卖能注册吗?域名是网站的标识,简短且易于记忆,为在线用户提供了访问我们网站的简单路径。一口价是在域名交易中一种常见的模式,而这种通常是针对已经被注册的域名转售给其他人的一种方式。
一口价域名买卖的过程通常包括以下几个步骤:
1.寻找:买家需要在域名售卖平台上找到心仪的一口价域名。平台通常会为每个可售的域名提供详细的描述,包括价格、年龄、流
443px" 443px) https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294.jpg https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294-768x413.jpg 域名售卖 域名一口价售卖 游戏音频 赋值/切片 框架优势 评估指南 项目规模 安全指南 Osprey 游戏分析 游戏调试 游戏图形 游戏物理 开源库 魔方破解 游戏安全
0