Operatore ++

Pic143
Salve, qualcuno saprebbe spiegarmi come funzionano gli operatori ++ e --? In particolare per la loro precedenza di esecuzione. In particolare perchè la risposta alla domanda seguente è la 3?

Dato il seguente frammento di codice:

int x = 5;
if (x++ >= 6)
    System.out.println("Ramo if");
else
    System.out.println("Ramo else");

cosa viene stampato a video?
Scegli un'alternativa:
1. Ramo if Ramo else
2. Il codice non viene compilato
3. Ramo else
4. ramo if
5. Nessuna delle altre risposte

Grazie in anticipo :D

Risposte
niccoset
All'interno di un'espressione, quando gli operatori ++ o -- sono prefissi a variabili (del tipo ++x) viene effettuato prima l'incremento o il decremento del valore della variabile e in seguito viene valutata l'espressione. Nel caso siano suffissi a variabili (del tipo x++) viene valutata prima l'espressione e poi il valore della variabile viene incrementato o decrementato.

Ecco un semplice esempio
int m = 7;
int n = 7;

int a = 3 * ++m; // a = 24; m = 8
int b = 3 * n++; // b = 21; n = 8

Pic143
Quindi nel momento di valutare
x++>=6
Prima svolge il confronto e poi l' incremento?

vict85
Sì, esatto.

feddy
Appena letta la conversazione mi sono sentito in dovere di linkare questa domanda su Stack :D https://stackoverflow.com/questions/164 ... rator-in-c

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.