Jaký je v jazyce Java technický rozdíl mezi výrazy „++ x“ a „x = x + 1“?


Odpověď 1:

Milý příteli, laskavě řekněte svému učiteli, že na takové otázky odpovídali sami, proto jsou profesionálové.

Každopádně pojďme na otázku:

Řekněme x = 9. Pokud tedy v kterémkoli z výrazů použijeme ++ x, znamená to, že nejprve se zvýší hodnota x a poté se použije, tj. Kdekoli použijete ++ x, použije se hodnota 10 místo 9 a hodnota zůstane 10, dokud nedojde k další změně.

Nyní, když použijeme (x = x + 1 nebo x + = 1 nebo x ++), je hodnota nejprve použita a poté je zvýšena. Výraz kde x = x + 1 se použije jako první, použije hodnotu 9 a potom se hodnota 10 uloží do x, dokud nedojde k další změně.

Myslím, že rozdíl je jasný. Pokud ne, zanechte komentář.


Odpověď 2:
class quora {public static void main (String [] args) {int x = 5; x = x + 1; System.out.println (x); x ++; System.out.println (x); }}
Zkompilován z quora.java třídy quora {quora (); Kód: 0: aload_0 1: invokespecial # 1 // Metoda java / lang / Object. " ":() V 4: vraťte veřejnou statickou mezeru (java.lang.String []); kód: 0: iconst_5 1: istore_1 2: iload_1 3: iconst_1 4: iadd // x = x + 1 5: istore_1 6 : getstatic # 2 // Pole java / lang / System.out: Ljava / io / PrintStream; 9: iload_1 10: invokevirtual # 3 // Metoda java / io / PrintStream.println: (I) V 13: iinc 1, 1 // x ++ 16: getstatic # 2 // Pole java / lang / System.out: Ljava / io / PrintStream; 19: iload_1 20: invokevirtual # 3 // Metoda java / io / PrintStream.println: (I) V 23: vrátit se}