Java标签不规则(可能有bug?)
如果我们查看§14.7,我们会发现语句可能有标签前缀,例如: 标签状态: 标识符:语句 理论上,标签应该能够标记任何后续语句。因此,例如,以下内容将相应编译:Java标签不规则(可能有bug?),java,label,java-8,standards,Java,Label,Java 8,Standards,如果我们查看§14.7,我们会发现语句可能有标签前缀,例如: 标签状态: 标识符:语句 理论上,标签应该能够标记任何后续语句。因此,例如,以下内容将相应编译: public class Test { public static void main(String[] args) { hello: return; } } 直观地说,这还包括: public class Test { int i; public static voi
public class Test {
public static void main(String[] args) {
hello:
return;
}
}
直观地说,这还包括:
public class Test {
int i;
public static void main(String[] args) {
Test t = new Test();
label:
t.i = 2;
}
}
但以下内容不会编译:
public class Test {
public static void main(String[] args) {
oops:
int k = 3;
}
}
尽管如此(请注意范围内的括号):
因此,问题取决于声明是否是声明。根据标准(和标准):
除了表达式语句,还有两种其他类型的语句:声明语句和控制流语句。声明语句声明一个变量
我在OSX和Windows上的Java7和Java8中都注意到了这种行为。这是错误还是我误解了标准?表达式
int k = 3;
这是一个很好的例子
在label语句的语法中使用
标签状态
:
<代码>标识符:
不包含局部变量声明语句。因此,不能在带标签的语句中直接使用它们
局部变量声明语句可以在其中使用,也可以在标记语句中使用。有趣。编译器会给出什么错误消息?
int k = 3;