Buon giorno a tutti.
Ho visto un test dove era presente questa porzione di codice
int x = 3;
//caso 1
x = x++ e x++
//caso 2
x = ++x e x++
//caso 3
x = ++x e ++x
il valore di x è diverso.
Grazie
Buon giorno a tutti.
Ho visto un test dove era presente questa porzione di codice
int x = 3;
//caso 1
x = x++ e x++
//caso 2
x = ++x e x++
//caso 3
x = ++x e ++x
il valore di x è diverso.
Grazie
x++ significa "valuta x e poi incrementa il suo valore"
++x significa "incrementa x e poi valuta x"
In un caso del genere, con ad esempio x = 5:
y = x++;
prima viene preso il valore di x e viene assegnato a y e poi x viene incrementato. Quindi y varrà 5 e x 6.
In quest'altro caso
y = ++x;
prima x diventa 6 e poi si assegna 6 a y.
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
La forma prefissa (++x) effettua prima l'incremento della variabile e solo dopo la valutazione dell'espressione.
La forma suffissa (x++) il contrario: prima valuta l'espressione e solo dopo effettua l'incremento.
Esempio (le parentesi le ho messe solo per leggibilità):
i varrà 4: prima viene incrementato x e poi gli viene aggiunto 2.codice:x = 1; i = (++x) + 2;
i varrà 3: prima viene valutata l'espressione (x vale 1, gli viene aggiunto 2 e viene assegnato ad i), poi x viene incrementato.codice:x = 1; i = (x++) + 2;
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza