Java中的标记语句块?
当我发现一段代码被一个scan: {}
块包围时,我正在浏览一些基本的Java对象。以下代码来自String类中的toLowerCase()方法。
scan: { for (firstUpper = 0 ; firstUpper < len; ) {
char c = value[firstUpper];
if ((c >= Character.MIN_HIGH_SURROGATE)
&& (c <= Character.MAX_HIGH_SURROGATE)) {
int supplChar = codePointAt(firstUpper);
if (supplChar != Character.toLowerCase(supplChar)) {
break scan;
}
firstUpper += Character.charCount(supplChar);
} else {
if (c != Character.toLowerCase(c)) {
break scan;
}
firstUpper++;
}
}
return this;
}
有人可以解释一下该scan:{}
块的用途以及该语法的来源吗?除非在三元运算符中使用过,否则在Java中像这样的单词之后我还没有看到冒号。
谢谢!
编辑:更新标题以正确匹配已回答的问题。
回答:
在这里,scan:
只是一个标签。该break
<label>语法允许人们摆脱外部循环,并模拟某种形式的goto
语句。语法记录在JLS中:
break
带有标签的语句Identifier
试图将控制权转移到Identifier
与其标签相同的封闭的带标签的语句(第14.7节);该语句称为中断目标,然后立即正常完成。在这种情况下,突破目标不一定是switch
,while
,do
,或for
语句。
以上是 Java中的标记语句块? 的全部内容, 来源链接: utcz.com/qa/412491.html