-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=++xx をインクリメントし、それを 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);
}

ご覧のとおり、x常にインクリメントされますが、違いは式が解決される順序です。

お役に立てば幸いです!

于 2013-02-26T15:41:24.937 に答える
0

前後のインクリメント。それぞれ、割り当て前にインクリメントし、割り当て後にインクリメントします。

于 2013-02-26T15:30:52.643 に答える