我正在获得一个"身份不明的标签"错误,这是我的代码:
if (this.prevTime > 0L)
{
int i = (int)(1.0E-06D * (System.nanoTime() - this.prevTime));
if (i >= 2000)
break label76;//unidentified label
j = 3;
if (j > 0)
break label56;//unidentified label
this.taps[0] = i;
}
我也尝试过:
if (this.prevTime > 0L)
{
int i = (int)(1.0E-06D * (System.nanoTime() - this.prevTime));
label76:
if (i >= 2000)
break label76;//'break' statement unnecessary
j = 3;
label56:
if (j > 0)
break label56;//'break' statement unnecessary
this.taps[0] = i;
}
然后我得到了('断言'语句不必要)。
答案 0 :(得分:1)
标签必须放在有意义的行中,并且break
语句不够。
当然,您可以参考documentation了解更多信息:
未标记的break语句终止最里面的switch,for,while或do-while语句,但带标签的break终止外部语句。
请看这个例子:以下程序 BreakWithLabelDemo 使用嵌套的for
循环来搜索二维数组中的值。 找到该值后,带标签的break
会终止外部for
循环(标记为"搜索"):
class BreakWithLabelDemo {
public static void main(String[] args) {
int[][] arrayOfInts = {
{ 32, 87, 3, 589 },
{ 12, 1076, 2000, 8 },
{ 622, 127, 77, 955 }
};
int searchfor = 12;
int i;
int j = 0;
boolean foundIt = false;
search: // <-----------------------------------------------------------*
for (i = 0; i < arrayOfInts.length; i++) { // *
for (j = 0; j < arrayOfInts[i].length; j++) { // *
if (arrayOfInts[i][j] == searchfor) { // *
foundIt = true; // *
break search; // -------------------------------------*
}
}
}
if (foundIt) {
System.out.println("Found " + searchfor + " at " + i + ", " + j);
} else {
System.out.println(searchfor + " not in the array");
}
}
}