命名变量“goto”时出现神秘错误?

时间:2013-06-24 15:16:23

标签: java

我试着编写一些简单的代码来连接两个字符串并打印它们:

class A {
    public static void main(String[] args) {
        String goto = "jon skeet";
        System.out.println("the go-to guy for java questions is " + goto);
    }
}

但它得到了所有这些错误:

$ javac A.java && java A
A.java:3: not a statement
        String goto = "jon skeet";
        ^
A.java:3: ';' expected
        String goto = "jon skeet";
              ^
A.java:4: illegal start of expression
        System.out.println("the go-to guy for java questions is " + goto);
                                                                    ^
A.java:4: ';' expected
        System.out.println("the go-to guy for java questions is " + goto);
                                                                        ^
4 errors

为什么?

5 个答案:

答案 0 :(得分:9)

goto是Java中的保留关键字,不能用作变量名,尽管它没有做任何事情。

来自JLS 3.9

的引用
  

由ASCII字母组成的50个字符序列保留用作关键字,不能用作标识符(§3.8)。

goto在此列表中)

  

关键字constgoto是保留的,即使它们当前未被使用。如果这些C ++关键字错误地出现在程序中,这可能允许Java编译器生成更好的错误消息。

答案 1 :(得分:8)

goto是Java中的reserved word,但它不用于任何内容。

答案 2 :(得分:4)

gotoJava's reserved keywords中的一个,不能用作变量名称,就像privatedoforif一样等我附上了链接,请访问。

goto从未实现过任何操作,但是关键字是保留的,因为将来有时可能会实现其功能。在语言 C 和类C语言中,goto语句更改控制流并跳转到所需标签。

答案 3 :(得分:0)

goto是保留字,表示您不能将其用作变量名。

这是保留字

的维基定义
  

在编程语言中,保留字(也称为保留字)   标识符)是一个不能用作标识符的单词,例如a   变量或函数的名称或标签;这是一种句法   定义,标识符的词汇语法的一部分

在此处查看完整的java保留字列表http://en.wikipedia.org/wiki/List_of_Java_keywords

答案 4 :(得分:0)

与所有其他Java保留的关键字一样,goto不能用作变量名。

您可以看到所有保留的关键字here