Sei sulla pagina 1di 11

I.I.S.

“Marzotto-Luzzatti” - Valdagno
Dipartimento di Informatica
Prof. Riccardo Crosato

Operatori
Operandi e operatori


Le espressioni in C# sono costruite utilizzando operandi e
operatori


Gli operatori di un’espressione indicano quale operazione deve
essere applicata agli operandi


Rispetto al numero di operandi, gli operatori si dividono in:
– operatori unari: richiedono un solo operando che può comparire
prima (notazione prefissa) o dopo (notazione postfissa) l’operatore
– operatori binari: richiedono due operandi che compaiono uno prima
e l’altro dopo l’operatore (notazione infissa)
– operatore ternario: richiede tre operandi. In C# c’è un solo operatore
ternario che è l’operatore condizionale ?:

Lezioni di Informatica classe III - Prof. Riccardo Crosato 2


Ordine di valutazione


L‘ordine di valutazione degli operatori in un’espressione è
determinato dalla loro precedenza e dalla loro associatività:

– la precedenza degli operatori determina l’ordine nel quale gli


operatori sono valutati

– l’associatività si riferisce invece al modo in cui gli operatori con


la stessa precedenza sono valutati:
da sinistra a destra (associatività sinistra) oppure da destra a
sinistra (associatività destra)

Lezioni di Informatica classe III - Prof. Riccardo Crosato 3


Operatori unari

Espressione Descrizione Numero operandi


e Associatività
x++ Post-incremento 1 – sinistra

x-- Post-decremento 1 – sinistra

+x + unario 1 – sinistra

-x Opposto numerico 1 – sinistra

!x NOT condizionale (negazione logica applicata 1 – sinistra


a variabili bool)
~x Complemento (negazione bit a bit di x, dove 1 – sinistra
x è di tipo int, uint, long o ulong)
++x Pre-incremento 1 – sinistra

--x Pre-decremento 1 – sinistra

(T)x Conversione esplicita di x al tipo T (cast) 1 – sinistra

Lezioni di Informatica classe III - Prof. Riccardo Crosato 4


Operatori di incremento (++) e decremento (--)


Gli operatori ++ e -- si applicano a variabili di tipo intero

Hanno l’effetto di incrementare o decrementare di una unità la
variabile a cui sono applicati

Possono essere scritti subito prima della variabile oppure subito
dopo:
– se l’operatore è messo prima (si parla di pre-incremento e
pre-decremento), viene calcolata l’operazione di incremento o
decremento e quindi il nuovo valore della variabile viene restituito
per essere utilizzato nel resto dell’espressione
– se l’operatore compare dopo la variabile (si parla di post-incremento
e post-decremento), il valore di quest’ultima viene restituito per
essere utilizzato nell’espressione e subito dopo l’operazione sulla
variabile viene eseguita

Lezioni di Informatica classe III - Prof. Riccardo Crosato 5


Operatori di incremento (++) e decremento (--)

int conta, indice = 5;


conta = --indice;

equivale a decrementare indice e assegnare il nuovo valore a conta,
portando quindi entrambe le variabili al valore 4.

int conta, indice = 5;


conta = indice++;

la variabile conta vale 5 e la variabile indice vale 6.

La seconda istruzione comporta le seguenti azioni:
– viene valutata l’espressione a destra che restituisce il valore di indice (cioè 5)
– viene incrementata la variabile indice
– viene assegnata alla variabile conta, a destra dell’assegnazione, il valore
calcolato cioè 5

Lezioni di Informatica classe III - Prof. Riccardo Crosato 6


Operatori di moltiplicazione e addizione

Espressione Descrizione Numero operandi


e Associatività
x*y Moltiplicazione 2 – sinistra

x/y Divisione 2 – sinistra

x%y Resto 2 – sinistra

Espressione Descrizione Numero operandi


e Associatività
x+y Addizione, concatenazione di stringhe 2 – sinistra

x–y Sottrazione 2 – sinistra

Lezioni di Informatica classe III - Prof. Riccardo Crosato 7


Operatori di traslazione (shift)

Espressione Descrizione Numero operandi


e Associatività
x << y Traslazione a sinistra 2 – sinistra

x >> y Traslazione a destra 2 – sinistra

int n = 255;
n = n >> 1; // ora n vale 127 (shift a destra di 1 bit)
n = n << 1; // ora n vale 254 (shift a sinistra di 1 bit)

Lezioni di Informatica classe III - Prof. Riccardo Crosato 8


Operatori relazionali e di uguaglianza

Espressione Descrizione Numero operandi


e Associatività
x<y Minore di 2 – sinistra

x>y Maggiore di 2 – sinistra

x <= y Minore o uguale a 2 – sinistra

x >= y Maggiore o uguale a 2 – sinistra

x == y Uguale 2 – sinistra

x != y Non uguaglianza 2 – sinistra

Lezioni di Informatica classe III - Prof. Riccardo Crosato 9


Operatori logici e condizionali

Espressione Descrizione Numero operandi


e Associatività
x&y AND logico: effettua l’and bit a bit 2 – sinistra

x^y XOR logico: effettua lo xor bit a bit 2 – sinistra

x|y OR logico: effettua l’or bit a bit 2 – sinistra

x && y AND condizionale: restituisce y solo se x è true 2 – sinistra

x || y OR condizionale: restituisce y solo se x è false 2 – sinistra

x ?? y Null-coalescing: restituisce y se x è null, altrimenti 2 – sinistra


restituisce x
x?y:z Condizionale: restituisce y se x è true e z se x è 3 – destra
false


&&, || e ! si applicano solo a variabili booleane e sono cortocircuitati

&, ^, | e ~ si applicano a variabili intere o booleane e non sono
cortocircuitati
Lezioni di Informatica classe III - Prof. Riccardo Crosato 10
Assegnazione semplice e composta

Espressione Descrizione Numero operandi


e Associatività
x=y Assegnazione semplice 2 – destra
x *= y Assegnazione composta 2 – destra
x /= y
x %= y x op= y, (dove op è uno degli operatori indicati)
x += y
x -= y
x <<= y
equivale a
x >>= y
x &= y x = x op y
x |= y
x ^= y

Lezioni di Informatica classe III - Prof. Riccardo Crosato 11

Potrebbero piacerti anche