A Java, quina és la diferència tècnica entre les expressions "++ x" i "x = x + 1"?


Resposta 1:

Benvolgut amic, digueu-li amablement al vostre professor que abans de respondre a aquest tipus de preguntes, per això són professionals.

De qualsevol manera ens posem a la pregunta:

Diguem x = 9. Ara si fem servir ++ x en alguna de les expressions, això vol dir primer que el valor de x s’incrementa i després s’utilitza, és a dir, on s’utilitzi ++ x s’utilitzarà el valor 10 en lloc de 9 i el valor romandrà 10 fins que es produeixi un altre canvi.

Ara si fem servir (x = x + 1 o x + = 1 o x ++) primer s'utilitza el valor i després s'incrementa. L’expressió on x = x + 1 s’utilitza per al primer utilitzarà el valor 9 i el valor 10 s’emmagatzemarà a x fins que es produeixi un altre canvi.

Crec que la diferència és clara. Si no, deixa un comentari.


Resposta 2:
class quora {public static void main (String [] args) {int x = 5; x = x + 1; System.out.println (x); x ++; System.out.println (x); }}
Recopilat de la classe quora "quora.java" {quora (); Codi: 0: aload_0 1: invokespecial # 1 // Mètode java / lang / Object. " ":() V 4: retornar el buit estàtic públic principal (java.lang.String []); codi: 0: iconst_5 1: istore_1 2: iload_1 3: iconst_1 4: iadd // x = x + 1 5: istore_1 6 : getstatic # 2 // Field java / lang / System.out: Ljava / io / PrintStream; 9: iload_1 10: invokevirtual # 3 // Mètode java / io / PrintStream.println: (I) V 13: iinc 1, 1 // x ++ 16: getstatic # 2 // Field java / lang / System.out: Ljava / io / PrintStream; 19: iload_1 20: invokevirtual # 3 // Mètode java / io / PrintStream.println: (I) V 23: tornar}