Originariamente inviato da peruzzo
in pratica l'interesse di fare un pre o un post incremento e definito dall'operatore ++(postfisso) o ++(prefisso) che per ordine ha precedenza rispetto all'=, giusto? ho capito la logica?
No, non c'entra la "precedenza". Centra l'ordine in cui vengono fatte le valutazioni.
Gli operatori in forma prefissa (++variabile) vengono valutati prima di valutare l'espressione complessiva, mentre gli operatori in forma suffissa (variabile++) vengono valutati dopo aver valutato l'espressione. Un esempio, per capire che non c'entra l'operatore di assegnamento:
codice:
int valore = 10;
System.out.print("Forma prefissa: ");
System.out.println( ++valore );
System.out.print("Forma suffissa: ");
System.out.println( valore++ );
System.out.println("Dopo le due valutazioni: " + valore);
Questo brano di codice stampa il seguente output:
codice:
Forma prefissa: 11
Forma suffissa: 11
Dopo le due valutazioni: 12
Alla riga 3 viene prima valutato l'operatore ( ++valore ), poi l'espressione (System.out.println(<espressione>) ).
Alla riga 5 viene prima valutata l'espressione (System.out.println(<espressione> ) ), poi viene valutato l'operatore ( valore++ ).
Per questo, le seguenti istruzioni
codice:
int a = 10;
int b = 10;
System.out.println(++a * b++);
System.out.println("A=" + a + ", B=" + b);
Producono il seguente output:
Ciao.