我盯着 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
那样运作吗?使用它甚至是一种好习惯吗?这让我很不安。
原文由 avgvstvs 发布,翻译遵循 CC BY-SA 4.0 许可协议
不,它不像 goto,因为您不能“转到”控制流的另一部分。
从您链接的页面:
这意味着您只能中断当前正在执行的循环。
考虑这个例子:
您可以将
xxx
替换为first
或second
(以打破外部或内部循环),因为当两个循环都被执行时break
语句,但将xxx
替换为third
将无法编译。