结肠在Java中意味着什么(第2部分)?

Gus*_*ave 2 java java-8

这个问题已被提出,但答案似乎不完整.以下上下文中的第一个冒号是什么意思?

import hudson.model.SCMS;
(...)
SCMS: for (SCM scm : scmTriggerItem.getSCMs()) { 
(...)
Run Code Online (Sandbox Code Playgroud)

此外,冒号在Java 8中有一些新的用途.

这个问题(最初在两年前提出过)与循环java代码不同,因为它更广泛.虽然原始问题的答案没有提到使用冒号作为标签,这在"java-code-loop-code"中得到了回答,但后一个问题并没有要求在for循环中使用冒号也没有在Java 8中.

正如biziclop的答案所示,Java语法中的冒号用法容易被遗忘,而在其他两个问题中则没有提及.

biz*_*lop 14

Java语言中有四种用法:.

  1. 表示标签.标签可用于循环breakcontinue循环.
  2. 增强的for语句(也称为每个语句)中,它允许跨集合和数组轻松迭代.
  3. 作为?: 条件运算符的一半.
  4. 而且从Java 8开始,作为:: 方法引用运算符的一部分.
  5. switch声明中,之后casedefault.
  6. 并且您还可以在assert语句中使用它来在断言失败时指定错误消息.

在您的情况下,SCMS:是一个标签,for (SCM scm : scmTriggerItem.getSCMs())而是一个增强的声明.

您始终可以在此处查找Java的完整语法参考.这是非常沉闷但没有它我很容易错过六个案件中的两个.