gpt4 book ai didi

java - 在 Java 中使用带标签的 break 是一种好习惯吗?

转载 作者:IT老高 更新时间:2023-10-28 13:51:36 26 4
gpt4 key购买 nike

我在看一些 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,因为您不能“转到”控制流的另一部分。

从您链接的页面:

The break statement terminates the labeled statement; it does not transfer the flow of control to the label. Control flow is transferred to the statement immediately following the labeled (terminated) statement.

这意味着您只能中断当前正在执行的循环。

考虑这个例子:

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 替换为 firstsecond(以中断外部或内部循环),因为两个循环都在执行,当您点击了 break 语句,但将 xxx 替换为 third 不会编译。

关于java - 在 Java 中使用带标签的 break 是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14960419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com