编程语言
首页 > 编程语言> > Java定义:标签,令牌

Java定义:标签,令牌

作者:互联网

我写了这个:

(fitness>g.fitness) ? return 1 : return -1;

并收到以下错误:

令牌上的语法错误,而不是标签.

任何人都可以解释在这种情况下令牌和标签是什么?

编辑:感谢您修复我的代码,但是您能解释一下令牌和标签是什么,以备将来参考吗?

解决方法:

标记是具有某种含义的单个字符和字符串.

The Java Language SpecificationChapter 3: Lexical Structure中定义的令牌是:

identifiers (§3.8), keywords (§3.9),
literals (§3.10), separators (§3.11),
and operators (§3.12) of the syntactic
grammar.

给定行中的标记是:

"(", "fitness", ">", "g.fitness", ")", "?", "return", "1", ":", "return", "-1", ";"

(空白也很重要,但我从上面省略了它们.)

Java中的标签用于控制程序中的流,并且是标识符,后跟冒号.

标签的一个例子是你好:

标签与continue和break语句一起使用,以指定要继续或中断的控制结构.

有关标签声明的更多信息,请参见The Java Language SpecificationSection 14.7.

这里的问题是return语句:

(fitness>g.fitness) ? return 1 : return -1;
                      ^^^^^^

有一个:紧跟在返回1之后,这使编译器认为那里应该有一个标签.

但是,返回1本身就是一个语句,因此,那里没有标签标识符,因此编译器抱怨它期待一个标签,但它无法找到正确形成的标签.

(fitness>g.fitness) ?  return 1   :   return -1;
                       ^^^^^^^^   ^
                      statement   label without an identifier

标签:java,token,definitions
来源: https://codeday.me/bug/20190715/1472905.html