我盯着 2001 年的一些旧代码,发现了以下语句:
else {
do {
int c = XMLDocumentFragmentScannerImpl.this.scanContent();
if (c == 60) {
XMLDocumentFragmentScannerImpl.this.fEntityScanner.scanChar();
XMLDocumentFragmentScannerImpl.this.setScannerState(1);
break label913;
}
我以前从未见过这种情况,并在这里发现了标记的中断:
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html
这本质上不是像
goto
一样吗?使用它甚至是好习惯吗?这让我很不安。 最佳答案
不,它不像 goto,因为您不能“转到”控制流的另一部分。
从您链接的页面:
这意味着您只能中断当前正在执行的循环。
考虑这个例子:
first:
for( int i = 0; i < 10; i++) {
second:
for(int j = 0; j < 5; j ++ )
{
break xxx;
}
}
third:
for( int a = 0; a < 10; a++) {
}
你可以用
xxx
或first
(打破外或内循环)取代second
,因为正在执行两个回路,当你到了break
声明,但xxx
更换third
将无法编译。关于java - 在 Java 中使用带标签的中断是一个好习惯吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14960419/