0
点赞
收藏
分享

微信扫一扫

Java关于scan,break scan

先峰老师 2022-08-20 阅读 29

看源码的时候,看到了新的语法,scan,break  scan。

下面源码摘抄于String.class的toUpperCase(Locale locale)方法

/* Now check if there are any characters that need to be changed. */
scan: {
for (firstLower = 0 ; firstLower < len; ) {
int c = (int)value[firstLower];
int srcCount;
if ((c >= Character.MIN_HIGH_SURROGATE)
&& (c <= Character.MAX_HIGH_SURROGATE)) {
c = codePointAt(firstLower);
srcCount = Character.charCount(c);
} else {
srcCount = 1;
}
int upperCaseChar = Character.toUpperCaseEx(c);
if ((upperCaseChar == Character.ERROR)
|| (c != upperCaseChar)) {
break scan;
}
firstLower += srcCount;
}
return this;
}

这语法是用来跳出多重循环的,'scan' 是自定义的,例子如下:

System.out.println("START");
a: {
for (int i = 0; i < 10; i++ ) {
System.out.println("START-" + i + "---------------");
for (int j = 0; j < 10; j++) {
System.out.println(j);
if (j == 3) {
break a;
}
}
System.out.println("END-" + i + "---------------");
}
}
System.out.println("END");

输出如下:

START
START-0---------------
0
1
2
3
END

可以尝试把break a;改成break;看看输出结果。



举报

相关推荐

0 条评论