Operatore ++
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:
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
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

Risposte
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
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
Quindi nel momento di valutare
x++>=6
Prima svolge il confronto e poi l' incremento?
x++>=6
Prima svolge il confronto e poi l' incremento?
Sì, esatto.
Appena letta la conversazione mi sono sentito in dovere di linkare questa domanda su Stack
https://stackoverflow.com/questions/164 ... rator-in-c
