在Java中使用= +运算符?

时间:2013-10-03 05:23:49

标签: java operators

我有以下代码:

public class Operators {
    public static void main(String[] args) {
        int i =+ 2;
        System.out.println(i);
    }
}

执行后,我得到以下输出: 2

那么 =+ 运算符实际上在这里做了什么?

修改

有些人回答说,它正在为+2分配i,请考虑以下代码:

public class Operators {
    public static void main(String[] args) {
        int i =- -2;
        System.out.println(i);
    }
}

因此,在上述情况下,输出应为 -2 。但我正在 2

所以我想,它是-(-2),它给出了2

6 个答案:

答案 0 :(得分:7)

int i =+ 2;

变量i的正2(+2)赋值。如果您的写作类似于int i = +2;

,那就更具有挖掘性或可理解性

又一个例子 -

int i = 2;
i=+3;
System.out.println(i);

打印3。

  

+一元加运算符;指示           正值(数字是           没有这个的积极,但是)

更多示例 - http://docs.oracle.com/javase/tutorial/displayCode.html?code=http://docs.oracle.com/javase/tutorial/java/nutsandbolts/examples/UnaryDemo.java

答案 1 :(得分:3)

说:

int i =+ 2;

+充当unary operator

详细说明,它将i设置为正值2

编辑:您的更新说:

int i =- -2;

产生2.为什么?

在这种情况下,它意味着i=-(-(2))。请注意,当值为Integer.MIN_VALUE时,使用一元减号运算符可能会产生意外的结果。

答案 2 :(得分:2)

我相信你的意思是= +真的是+ =。

您的代码将+2(正2)的值分配给整数。

例如:

int x =+ 4;
x =+ 8;
Console.WriteLine(x.ToString());
Console.ReadLine();

将打印“8”而不是12.这是因为您将x指定为+4然后指定+8。

如果你问的是+ =是什么,它是获取初始变量并添加它的简写。

x += 8

相同
x = x + 8

通过更改前面的示例form = + to + =给我们:

int x = 4;
x += 8;
Console.WriteLine(x.ToString());
Console.ReadLine();

将打印“12”。

答案 3 :(得分:1)

你设置i等于+2,这就是你得到的。你期待什么样的输出?

答案 4 :(得分:0)

有关一元操作员的信息,请参阅下图。

enter image description here

这是一个了解它的例子。

public class UnaryDemo {
    public static void main(String[] args) {
        int x = 10;
        int y = 20;

        int result = +x;

        System.out.println("+x = " + result);

        result = -y;

        System.out.println("-y = " + result);
        }
    }

,输出

+x = 10
-y = -20

因此,请将运营商视为variable = +value而不是variable =+ values。是的,这个空间使它更具可读性。

答案 5 :(得分:0)

在回答所有其他问题时,我想提供JLS参考 回答你的编辑

int i =- -2;

jls

中所述
  • 对操作数执行一元数字提升(第5.6.1节)。
  • 一元减去表达式的类型是操作数的提升类型。
  • 在运行时,一元减去表达式的值是操作数的提升值的算术否定。

所以,

System.out.println(i); //prints 2  

对于整数值,否定与从零减去相同。


注意

对于浮点值,否定与从零减法不同,因为如果x为+0.0,则0.0-x为+0.0,但-x为-0.0。

一元减号仅反转浮点数的符号。特殊情况:

  • 如果操作数是NaN,则结果为NaN。 (回想一下,NaN没有任何迹象(§4.2.3)。)

  • 如果操作数是无穷大,则结果是符号相反的无穷大。

  • 如果操作数为零,则结果为符号相反的零。

有用的链接

  1. unary operators
  2. Unary Numeric Promotion