类示例
public static void main (String ARGS[]){
Block: {
System.out.println("hi");
}
Block;
}
任何人都可以帮助我......告诉我原因n概念为什么会出现错误并且可以解决?或者我的方向错误..
答案 0 :(得分:0)
不,你不能。标记代码块不是java中的有效语法。在某些编程语言中,如C,它是有效的。您可以使用goto
关键字将执行转移到该标签标识的代码块。但在Java中,没有。你不能。如果你的另一个问题是“为什么不允许这样做”,你可以搜索旧的答案。
答案 1 :(得分:0)
这需要使用goto
关键字,这在Java中不可用,因为它可能会导致 Spaghetti Code 。结构良好的程序不应该需要这样的块。有关goto
为何不好的更多信息,请阅读:
http://www.drdobbs.com/jvm/programming-with-reason-why-is-goto-bad/228200966
答案 2 :(得分:-1)
当我们在JVM中加载类时会自动调用块方法,首先执行块然后执行main方法。 像
public class ConstructorBlockExample{ { System.out.println("This is first constructor block"); } public ConstructorBlockExample(){ System.out.println("This is no parameter constructor"); } public ConstructorBlockExample(String param1){ System.out.println("This is single parameter constructor"); } public ConstructorBlockExample(String param1, String param2){ System.out.println("This is two parameters constructor"); } { System.out.println("This is second constructor block"); } public static void main(String[] args){ ConstructorBlockExample constrBlockEx = new ConstructorBlockExample(); ConstructorBlockExample constrBlockEx1 = new ConstructorBlockExample("param1"); ConstructorBlockExample constrBlockEx2 = new ConstructorBlockExample("param1", "param2"); } }
和输出
This is first constructor block This is second constructor block This is no parameter constructor This is first constructor block This is second constructor block This is single parameter constructor This is first constructor block This is second constructor block This is two parameters constructor
你可以使用标签作为一个块,但它主要用于打破或继续块内的循环,如:
outer: for(int i=...){ for(int j=..){ ... break outer; // leaves both loops } }
答案 3 :(得分:-1)
https://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html
通过从头到尾(从左到右)按顺序执行每个局部变量声明语句和其他语句来执行块。如果所有这些块语句都正常完成,则块正常完成。如果这些块语句中的任何一个因任何原因突然完成,则块会因同样的原因突然完成。
答案 4 :(得分:-3)
Java 7允许String作为交换机。 使用MyEnum.valueOf(str)的Enum解决方法可以正常工作。 如果可能的话,可以切换String(或Object)的哈希码以及更多if-then-else,但只有很多可能性才有意义,在这种情况下整个事情可能需要进行大修。 / p>