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节);该语句称为中断目标,然后立即正常完成。在这种情况下,突破目标不一定是switchwhiledo,或for语句。

以上是 Java中的标记语句块? 的全部内容, 来源链接: utcz.com/qa/412491.html

回到顶部