当前位置: 首页 > 知识库问答 >
问题:

在Java中使用带标签的break是一种好的做法吗?

麹耘豪
2023-03-14
   else {
     do {
       int c = XMLDocumentFragmentScannerImpl.this.scanContent();
       if (c == 60) {
         XMLDocumentFragmentScannerImpl.this.fEntityScanner.scanChar();
         XMLDocumentFragmentScannerImpl.this.setScannerState(1);
         break label913;
       }

这在本质上不像goto那样工作吗?使用它甚至是好的实践吗?这让我很不安。

共有1个答案

谢和颂
2023-03-14

不,这不像goto,因为您不能“转”到控制流的另一部分。

从您链接的页面:

break语句终止标记语句;它不会将控制流转移到标签。控制流被转移到紧随标记(终止)语句之后的语句。

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

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++) {

}
 类似资料:
  • 问题内容: 我盯着2001年的一些旧代码,发现以下语句: 我以前从未见过,并在这里发现标记为的中断: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html 这本质上不像吗?使用它甚至是一种好习惯吗?这让我不安。 问题答案: 不,这不像goto,因为您不能“转到”控制流的另一部分。 在您链接的页面上: break语句

  • 问题内容: 我想知道使用语句退出循环而不是满足循环条件是否是“坏习惯” ? 我对Java和JVM的了解不足,无法知道如何处理循环,因此我想知道我是否通过这样做忽略了一些关键的事情。 这个问题的重点:是否有特定的性能开销? 问题答案: 好主啊 有时,可能会在满足整体要求的循环中发生某些事情,而不满足逻辑循环条件。在这种情况下,用于阻止您毫无意义地循环。 例 在此示例中更有意义的是。每次找到后都继续循

  • http://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html

  • 我有一个IntentService,它使用TimerTask每隔45秒在OnHandleContent中调用webservice。 我的问题是:我正在调用应用程序启动IntentService,而在OnHandleIntent中,由于TimerTask,任务不断重复。。这样做是一种好做法还是有任何缺点?我应该在我的活动中使用报警管理器每次调用intent service,还是继续使用timer任务

  • 我有一个枚举: 在枚举成员之间使用方法检查“层次结构”有什么问题吗?我的意思是-当有人将来可能会意外更改顺序时,使用它排除冗长是否有任何缺点。 还是这样做更好:

  • 我见过很多次scala代码使用Option(对于简单值)或[List[Error],T]来处理错误。 这为这样的代码提供了位置 这会产生一个不太好的代码嵌套,迫使您处理每一步的失败,并迫使您让所有函数返回一个[...] 所以我想知道 > 在scala(或一般的函数式编程)中不鼓励使用异常 使用它们有任何缺点(关于不可变性或代码并发性) 异常与原理或函数式编程有些冲突 你可以想出一个更好的方法来编写