4

这可能是个愚蠢的问题,但我不知道为什么会这样。我编写了以下代码片段。

public class Test {
public static void main(String... str)
{
    int y = 9;
    int z = +++y; //unexpected type required:variable found:value
    int w = +-+y; // Not Error
}}

为什么 +-+y 有效而 +++y 无效?

4

2 回答 2

7

+++y被解释为++运算符后跟+y.

+y与原样一样有效-y,但++运算符希望对变量进行操作(它不能增加值),并且+y被认为是一个值(执行了加法操作)。

+-+yas 0 + (0 - (0 + y)),并且其中没有递增或递减运算符,因此即使该操作将整个表达式转换为一个值(而不是变量引用),它也没有任何效果。

于 2013-11-09T13:07:31.473 回答
3

在 Java 中,字符+++表示++,后跟+,它们是两个不同的运算符。另一方面,没有运算符+-,所以字符的+-+意思是+, then -, then +

如果你想玩这些运算符,还有~,它是一个二进制 not+您可以使用运算符-和构建任意链~,只要它们不包含++or --

于 2013-11-09T13:09:45.183 回答