java中不像C/C++有goto语句,其中,在Java中引入语句标签的概念,标签用于continue
和break
以实现精确的流程控制。
其定义方式为标签名+冒号。
在多重循环中,continue
只时继续最内层循环,break
则跳出所有循环,通过循环打上标签,可以精确的控制所需要跳转的未知。
标签可以嵌套,如为for循环打上标签之后可以为for循环内部的语句再加上标签。
标签可以重名,但是重名不能出现在嵌套的情况下。
class Test {
char[] value;
int offset, count;
int indexOf(TestString str, int fromIndex) {
char[] v1 = value, v2 = str.value;
int max = offset + (count - str.count);
int start = offset + ((fromIndex < 0) ? 0 : fromIndex);
label:
for (int i = start; i <= max; i++) {
int n = str.count, j = i, k = str.offset;
label2:
while (n-- != 0) {
if (v1[j++] != v2[k++]){
continue label;
}
}
return i - offset;
}
return -1;
}
}