Operatore ++

Messaggioda Pic143 » 20/10/2020, 16:41

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:

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
Pic143
Starting Member
Starting Member
 
Messaggio: 23 di 48
Iscritto il: 05/02/2018, 11:55

Re: Operatore ++

Messaggioda niccoset » 20/10/2020, 17:29

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
Codice:
int m = 7;
int n = 7;

int a = 3 * ++m; // a = 24; m = 8
int b = 3 * n++; // b = 21; n = 8
" Tutto dovrebbe essere reso più semplice possibile, ma non più semplice ancora. " - Albert Einstein
niccoset
Average Member
Average Member
 
Messaggio: 292 di 584
Iscritto il: 13/06/2013, 07:17

Re: Operatore ++

Messaggioda Pic143 » 21/10/2020, 14:25

Quindi nel momento di valutare
x++>=6
Prima svolge il confronto e poi l' incremento?
Pic143
Starting Member
Starting Member
 
Messaggio: 24 di 48
Iscritto il: 05/02/2018, 11:55

Re: Operatore ++

Messaggioda vict85 » 21/10/2020, 14:29

Sì, esatto.
vict85
Moderatore
Moderatore
 
Messaggio: 10242 di 19253
Iscritto il: 16/01/2008, 00:13
Località: Berlin

Re: Operatore ++

Messaggioda feddy » 05/11/2020, 18:52

Appena letta la conversazione mi sono sentito in dovere di linkare questa domanda su Stack :D https://stackoverflow.com/questions/164 ... rator-in-c
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2744 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite