-2

Java中的x++和++x有什么区别

任何人都可以通过参考下面的代码告诉我上面的区别,

class Example{
    public static void main(String args[]){
        int x=10;
        int y;
        y=x++;  //Prints 11     10 
        System.out.println(x+"\t"+y)
    }
}

class Example{
    public static void main(String args[]){
        int x=10;
        int y;
        y=++x;  //Prints 11     11 
        System.out.println(x+"\t"+y)
    }
}
4

4 回答 4

3

y=x++将 x 分配给 y,然后递增 x。

y=++x递增 x,然后将其分配给 y。

于 2013-02-26T15:30:01.310 回答
2

++x预增量。即,x 的值首先递增,然后分配给 x。

x++后增量。即,x 的值先赋值,然后递增。

y=x++;

本质上是一样的

y =x;
x= x+1;

y=++x;

y= (x+1);
于 2013-02-26T15:30:16.007 回答
0

不同之处在于,在第一种情况下 ( x++),Java 首先解决了分配问题,然后递增x。在另一种情况下 ( ++x),Java 首先解析增量,然后解析赋值。在以下代码中,您将看到不同之处:

@Test
public void test1() {
    int x = 1;
    int y = 1;

    y = 2 + x++;
    assertEquals(2, x);
    assertEquals(3, y);
}

@Test
public void test2() {
    int x = 1;
    int y = 1;

    y = 2 + ++x;
    assertEquals(2, x);
    assertEquals(4, y);
}

如您所见,xalways 将递增,但不同之处在于解析表达式的顺序。

希望它会有用!

于 2013-02-26T15:41:24.937 回答
0

前后增量。分别在赋值之前递增和在赋值之后递增。

于 2013-02-26T15:30:52.643 回答