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;}}
