ePrometeusCorsoJavaJava
testi articoli
Testi Articoli  Download
Home | Basi | Espressioni | Comandi | Classi | Ereditarieta | Eccezioni | Thread | Utilita | 
CorsoJava è ora Video! Free for all!
Clicca Qui!

Espressioni
Espressioni
Primitivi
Costanti
Booleane
Carattere
Numeri
Operatori
Promozione
Overloading
Aritmetici
Virgola Mobile
Relazionali
Binari
Shift
Negazione
And
Or
Condizionale
Incremento
Assegnamento

<<< Incremento >>>
Operatori di incremento e decremento

vediamo adesso degli operatori che potrebbero anche non esistere. Quello che fanno infatti si può ottenere usando altre operatori che abbiamo già visto. Il loro uso e la loro utilità si ha per la convenienza, in quanto consentono di fare in maniera sintetica delle operazioni molto frequenti nella programmazione, e in particolare nei cicli. Usandoli si può scrivere del codice compatto, e quando ci si prende l'occhio anche più leggibile. Alcuni programmatori considerano il linguaggio C (da cui deriva Java) illeggibile proprio per la presenza di queste operatori, ma in realtà, se usati appropriatamente, la aumentano (ovviamente gli occhi di chi conosce il C e il Java).

Classici del C:
++ incremento di 1
-- decrementodi 1

Gli operatori ++ e -- sono operatori che effettuano un incremento o un decremento. Si tratta essenzialmente di operatori con effetti collaterali. Per esempio scrivere ++a è (all'incirca) come scrivere a = a + 1, mentre scrivere --a è come scrivere a = a - 1. Si tratta però di operatori: ovvero dopo aver fatto il calcolo ritornano anche un valore. Se vi ricordate quando abbiamo parlato di a = 1, abbiamo detto che si tratta di un operatore che ritorna un valore (1) e causa un effetto collaterale (assegna uno ad a). Allo stesso modo ++a ritorna un valore, che è a incrementato di 1, ma ha anche l'effetto collaterale di lasciare questo valore incrementato in a. Quindi tipo dire che ++a incrementa a e ritorna il valore incrementato. Stesso discorso (mutatis mutandis) per --a.

operano su interi e float

queste operatori possono essere applicati sostanzialmente a numeri, in particolare numeri interi è in virgola mobile.

Possono essere prefissi o postfissi:

un'altra caratteristica di queste operatori è il fatto che in realtà sono quattro e non due. Il comportamento infatti è diverso a secondo se vengono messi prima o dopo il loro operando. Cioè se sono prefissi (++a --a) o postfissi (a++ a--). La differenza tra prefisso e postfisso è che nel primo caso viene prima effettuato l'incremento, e poi restituito il valore; nel secondo caso viene invece prima restituito il valore e poi effettuato l'incremento.

Prefisso Postfisso
a = 1 ; a = 1 ;
b = a++; b = ++a;
Risultato:
b==1 e a==2
Risultato:
b==2 e a==2

Nella tabella è illustrato con un esempio quello che succede. Se un operatore è postfisso, alla fine b vale 1, perché ha preso il valore di a prima dell'incremento; se l'operatore è usato prefisso, alla fine a vale 2, perché prende il valore di a dopo l'incremento. In entrambi i casi alla fine a risulta incrementato e quindi vale 2.

ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com