Java中的=-运算符

Gpar

我有这段代码,

class  Test
{
  public static void main(String args[])
  {
    int a=--4-2*2/9-3;//Line  1
    System.out.println(a);
  }
}

为什么在--4上出现此编译时错误?请不要建议我有-(-4)。我只是想弄清楚,为什么上面的代码是编译时错误,并且如果我将第1行的代码更改为a =--4-2 * 2 / 9-3,则O / p为1。即- (-4)。我错过了一秒钟,它必须与-=即a = a-(表达式的其余部分)相同。它也用++运算符给出相同的错误!有人可以向我解释一下吗?

--是Java和许多其他语言的“减量”运算符。编译器不会把它当作两个原因,-运营商是有一个基本的规则,编译器会寻找那些形式的“分隔符”或“经营者”之一,所定义的连续字符序列最长的在这里>由于泛型,字符的处理方式有所不同。)

这在JLS 3.2中有明确说明

即使结果最终不能做出正确的程序,而每个词法都可以使用,最长的翻译也会在每个步骤中使用。[>字符]有一个例外...

因此,当编译器看到时--4,会将其视为--应用于运算符4,这是非法的。它不会回溯并尝试寻找其他方式来解释--

但是,如果看到- -4连字符之间有空格,则-除了单个减号之外,它不能将其解释为其他任何内容。这是合法的,与的含义相同-(-4)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章