java - 什么是 Java 中正式调用的“search: { ... }”/“break search”语法?
问题描述
此代码来自 leetcode 681 的解决方案:
class Solution {
public String nextClosestTime(String time) {
int cur = 60 * Integer.parseInt(time.substring(0, 2));
cur += Integer.parseInt(time.substring(3));
Set<Integer> allowed = new HashSet();
for (char c: time.toCharArray()) if (c != ':') {
allowed.add(c - '0');
}
while (true) {
cur = (cur + 1) % (24 * 60);
int[] digits = new int[]{cur / 60 / 10, cur / 60 % 10, cur % 60 / 10, cur % 60 % 10};
search : {
for (int d: digits) if (!allowed.contains(d)) break search;
return String.format("%02d:%02d", cur / 60, cur % 60);
}
}
}
}
通常我会使用 Python 来做 leetcode,但最近我想练习使用 Java。我注意到这部分:
search : {
for (int d: digits) if (!allowed.contains(d)) break search;
return String.format("%02d:%02d", cur / 60, cur % 60);
}
我以前从未见过这样的用途。我可以理解它在做什么:感觉就像它自定义了一个“搜索”块并且可以从中中断。我只想知道Java中这种用法的正式名称是什么。谢谢!
解决方案
推荐阅读
- python - 如何确保停靠的 Qt 窗口具有带有深色平台主题的可见控件?
- powershell - 复制项目排除子文件夹
- css - CSS 过渡只能以一种方式工作,元素只会在没有过渡的情况下恢复
- mysql - MySQL正则表达式位于字符串中间
- sql - 受 dbexecute 影响的行总是为 0
- scala - SBT如何在匹配的文件夹中获取文件名?
- c# - 自定义 404 页面不会被重定向
- python - 如何更改实际的浮点格式 python 存储?
- facebook - Facebook API 无法检索潜在客户。获取错误代码 100 和错误子代码 33
- linux - 如何在 Oracle Linux Server 6.8 上更改没有名称的时区?