标号
作用:
通过给语句块加标号可以赋予语句块名称。
标号位于语句块之前,标号只能被continue和break引用。
标号标识的语句块一般是多层循环结构。
break只能跳出单层循环,对于多层循环通过break后加标号的方式可跳出标号所标识的循环体。
continue的用法与break类似,只是作用和效果不同。
示例:(跳出整个循环)
label: for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
System.out.println("i=" + i + ",j=" + j);
if (j == 1)
break label;
}
}
一个语句块前可有多个标号(选择l1,l2效果一样)
多层嵌套循环可每层放置一个标号,通过break加标号可精确跳转到具体某一层
l1: l2: for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
System.out.println("i=" + i + ",j=" + j);
if (j == 1)
break l2;
}
}
注意:
1、各层的标号不能同名;2、外循环不能调用内循环的标号
l1: for (int i = 0; i < 3; i++) {
l2: for (int j = 0; j < 3; j++) {
l3: for (int k = 0; k < 3; k++) {
System.out.println("i=" + i + ",j=" + j + ",k=" + k);
if (k == 1)
break l2;
}
}
}