当前位置: 首页 > 面试题库 >

在Java中使用标记语句有什么意义?

彭鸿文
2023-03-14
问题内容

我正忙于学习证书,偶然发现了一个我从未听说过的概念-“标签声明”。例如:

‘label’:’statement’

L1: while(i < 0){
     L2: System.out.println(i);
}

所以我的问题是..为什么?这有什么用?什么时候要使用这样的东西?


问题答案:

我知道的唯一用途是可以在breakcontinue语句中使用标签。因此,如果您有嵌套循环,则可以一次突破多个层次:

OUTER: for (x : xList) {
          for (y : yList) {
              // Do something, then:
              if (x > y) {
                  // This goes to the next iteration of x, whereas a standard
                  // "continue" would go to the next iteration of y
                  continue OUTER;
              }
          }
       }

如该示例所示,如果您以嵌套的方式一次遍历两件事(例如搜索匹配项)并想要继续进行,或者您正在执行常规迭代,但出于某种原因想要放置一个在嵌套for循环中中断/继续。

不过,我倾向于每隔几年只使用一次。因为它们是很少使用的构造,所以它们很难理解,因为如果它们可以用另一种方式清楚地编写代码,则我将避免使用标签。



 类似资料:
  • 另外,是什么意思?我一直尝试使用 但是将无法工作,除非放入。

  • 问题内容: 当我发现一段代码被一个块包围时,我正在浏览一些基本的Java对象。以下代码来自String类中的toLowerCase()方法。 有人可以解释一下该块的用途以及该语法的来源吗?除非在三元运算符中使用过,否则在Java中像这样的单词之后我还没有看到冒号。 谢谢! 编辑:更新标题以正确匹配已回答的问题。 问题答案: 在这里,只是一个标签。该语法允许人们摆脱外部循环,并模拟某种形式的语句。语

  • 问题内容: 我看过这样的代码: 我的问题是参数名称前的标记是什么意思?这是否意味着在调用函数时必须指定参数? 此外,没有这个标记,有人能告诉我功能的不同吗?代码示例非常受欢迎。 问题答案: 更新(Swift 3。* …) 第一个参数签名的默认行为发生了巨大变化。要了解参数标签(例如“外部参数”)和参数名称(例如“局部参数”)如何工作,请阅读Apple的Swift书中的“函数参数标签和参数名称”一章

  • 问题内容: 似乎与 使用open .. as代替f =有什么好处?只是语法糖吗?仅保存一行代码? 问题答案: 为了与语句版本等效,您编写的代码应如下所示: 虽然这看起来像语法糖,但可以确保您释放资源。通常,这个世界比这些人为的例子要复杂得多,如果您忘记了一个案例或无法处理一个极端案例,那么您将面临资源泄漏。 该语句使您免于那些泄漏,使编写干净的代码更加容易。有关完整的说明,请参阅PEP 343 ,

  • 本文向大家介绍语句for( ;1 ;) 有什么问题?它是什么意思?相关面试题,主要包含被问及语句for( ;1 ;) 有什么问题?它是什么意思?时的应答技巧和注意事项,需要的朋友参考一下 死循环,和while(1)相同。

  • 我对何时使用什么原语有点困惑。如果定义一个数字,如何知道使用、、或?我知道它们是不同的字节,但这是否意味着我只能对某个数字使用其中的一个呢? 所以简单地说,我的问题是,我什么时候使用上面列出的四个原语中的每一个?