在Java中,下面的表达式:
n+++n
似乎被视为等同于:
n++ + n
尽管+n
是一个有效的一元运算符,比算术运算符+
的优先级更高,在n + n
中。编译器似乎假定该运算符不能是一元运算符,并解析表达式。
然而,表达式:
n++++n
尽管存在唯一的有效解决可能性,但编译不通过:
n++ + +n
++n
和 +n
被指定为具有相同的优先级,那么为什么编译器在 n+++n
中解决看似的歧义时会偏向于算数运算符 +
,而在 n++++n
中却不会这样做呢?
n+++n
语句,Eclipse告诉我它是无效的。 - Mauren++n
应该被解释为+(+n)
,这将使++n
不可能。 - mvpn+++n;
不是一个有效的独立语句。问题在于表达式n+++n
。请尝试使用x = n+++n;
。 - John Kugelman