Milline on Java-vormingus väljendite "++ x" ja "x = x + 1" tehniline erinevus?


Vastus 1:

Kallis sõber, palun rääkige oma õpetajale, et nad vastasid taolistele küsimustele omaette, sellepärast on nad professionaalid.

Igal juhul jõuame küsimuse juurde:

Ütleme x = 9. Kui me kasutame mõnes avaldis ++ x, tähendab see kõigepealt, et x väärtust suurendatakse ja siis seda kasutatakse, st kus iganes te kasutate ++ x, kasutatakse 9 asemel väärtust 10 ja väärtus jääb 10-ni, kuni toimub uus muutus.

Kui me kasutame (x = x + 1 või x + = 1 või x ++), siis kõigepealt kasutatakse väärtust ja siis seda suurendatakse. Lause, kus esimese korral kasutatakse x = x + 1, kasutab väärtust 9 ja seejärel salvestatakse väärtus 10 x-ni, kuni toimub uus muutus.

Minu arust on erinevus selge. Kui ei, siis jätke kommentaar.


Vastus 2:
klassikvoor {avalik staatiline tühine pea (String [] args) {int x = 5; x = x + 1; System.out.println (x); x ++; System.out.println (x); }}
Koostatud klassist quora {quora.java "{quora (); Kood: 0: aload_0 1: invokespecial # 1 // Meetod java / lang / Object. " ":() V 4: tagastab avaliku staatilise tühise pea (java.lang.String []); Kood: 0: iconst_5 1: istore_1 2: iload_1 3: iconst_1 4: iadd // x = x + 1 5: istore_1 6 : gettatic # 2 // Field java / lang / System.out: Ljava / io / PrintStream; 9: iload_1 10: invokevirtual # 3 // Meetod java / io / PrintStream.println: (I) V 13: iinc 1, 1 // x ++ 16: gettatic # 2 // Field java / lang / System.out: Ljava / io / PrintStream; 19: iload_1 20: arvekevirtual # 3 // Meetod java / io / PrintStream.println: (I) V 23: tagasi}