+++ x需要意外类型:找到变量:value

时间:2013-11-09 13:00:46

标签: java

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

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起作用而+++不起作用?

2 个答案:

答案 0 :(得分:7)

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

+y-y一样有效,但++运算符需要对变量进行操作(它不能递增值),+y被认为是值(执行加法操作)。

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

答案 1 :(得分:3)

在Java中,字符+++表示++,后跟+,它们是两个不同的运算符。另一方面,没有运算符+-,因此字符+-+表示+,然后是-,然后是+

如果您想要使用这些运算符,还有~,这是二进制文件。您可以使用运算符+-~构建任意链,只要它们不包含++--