Gli operatori sono utilizzati per manipolare le informazioni all'interno di una espressione. Una espressione è un insieme di elementi del linguaggio combinati tra loro (variabili, operatori, ecc.) per eseguire un determinato calcolo. Delle variabili abbiamo già parlato nelle lezioni precedenti, ora tocca agli operatori. I primi tre operatori che analizzeremo sono: UNARI, BINARI e TERNARI. Gli operatori UNARI influenzano un singolo valore o variabile (operando) e comprendono i segni:
Esempi di uso di operatori: int num1= 125; // 125 è un numero
positivo, avrei potuto scrivere +125 int num2= -12; //
con l'operatore - ho espressamente dichiarato che num2 è un numero
negativo num1++; // con
l'operatore di incremento ++, ho incrementato la variabile di una unità,
num1 ora vale 126 num1--; // con
l'operatore di decremento --, ho decrementato la variabile di una unità,
num1 ora vale 125 bool vero=true; // ho dichiarato
una variabile booleana a cui ho assegnato il valore true
bool falso=!vero; // il complemento ! della variabile booleana vero è false L'operatore ~ di complemento a bit, inverte la rappresentazione binaria di un valore cioè tutti i bit a 1 si trasformano in 0 e i bit a 0 si trasformano in 1. Gli operatori binari sono quegli operatori che funzionano con due operandi. Per esempio, una espressione binaria potrebbe essere la seguente: somma=num1+num2; essa fa uso dell'operatore di addizione che opera su due operandi, num1 e num2. Gli operatori binari si dividono ulteriormente in aritmetici, relazionali, logici e di assegnamento. Gli operatori ternari sono gli operatori più complessi e fanno uso di tre variabili. Il C# comprende un solo operatore ternario, l'operatore condizionale. Ha la seguente sintassi: var = condizione ? istruzione1 : istruzione2; in base al risultato (true o false) del test eseguito dalla condizione, verrà assegnato alla variabile var il risultato dell'istruzione1 (true) oppure dell'istruzione2 (false). Quest’ultimo tipo di operatore lo descriveremo con maggiore dettaglio quando studieremo le istruzioni condizionali. Operatori aritmetici. Durante la scrittura di un programma, gli operatori aritmetici sono gli operatori più usati. Gli operatori aritmetici di C#, sono quelli che fanno parte della stragrande maggioranza dei linguaggi di programmazione moderni. Questi sono:
Di questi operatori ne faremo largo uso ma c'è una tipologia di operatori, se vogliamo un po’ strani, che sono gli operatori aritmetici composti Questo tipo di operatori composti, ci consentono di scrivere velocemente una operazione aritmetica che riguarda l’aggiunta di un valore ad una variabile. Per esempio se volete incrementare il valore della variabile x di 3 unità, potete scrivere x=x+3; . Però ora potete anche usare l'operatore composto += in questo modo: x+=3; che esegue la medesima operazione. Tutti gli operatori aritmetici visti prima, possono essere usati per effettuare una operazione composta. Nel listato seguente compare una piccola novità. L’istruzione della riga 7 effettua due operazioni in un colpo solo: dichiarazione della variabile e sua assegnazione. Per il resto sarete certo in grado analizzarlo. Quindi non vi resta che copiarlo ed eseguirlo.
Operatori aritmetici unari. Gli operatori di cui si è parlato, erano fondamentalmente di tipo binario. In C# (come anche in Java) esistono due tipi di operatori aritmetici particolari di tipo unario cioè agiscono su un solo valore. Sono l'operatore di incremento ++ e di decremento -- . Per esempio l'istruzione ++x; incrementa la variabile x di una unità (viene chiamato operatore prefisso). Avremmo potuto scrivere tranquillamente x=x+1; ma l'operatore unario ++x; , come si vede, è più pratico e veloce. Ovviamente all'operatore di incremento si oppone quello di decremento, --x; . Possono essere usati anche facendo seguire il segno dell'operazione alla variabile, per esempio x++; (viene chiamato operatore postfisso). Però qui le cose cambiano. Facciamo un esempio. L'istruzione y=++x; con x=10, assegnerà ad y il valore di x incrementato di una unità, cioè 11. In pratica l'istruzione incrementerà prima la variabile x e successivamente la assegnerà ad y. Se invece avessi scritto così: y=x++; la variabile y non avrebbe il valore 11 ma 10. La spiegazione sta nel fatto che con l'operatore postfisso, l'incremento viene effettuato dopo l’assegnazione, cioè ad y viene prima assegnato il valore di x e successivamente avviene l'incremento. Una tale situazione deve essere presa in seria considerazione perché potrebbe alterare il risultato di una operazione. Gli operatori unari, quindi, devono essere utilizzati con molta attenzione e cognizione di causa. Operatori relazionali. Durante la scrittura di un programma, capita spessissimo di dover eseguire un blocco di codice al posto di un altro in base al risultato della valutazione di una condizione. Nella valutazione di una condizione, di solito compaiono due valori che saranno confrontati. Gli operatori relazionali vengo utilizzati appunto per effettuare questi confronti. Questi sono gli operatori relazionali:
Il risultato di questi confronti è un valore booleano (vero o falso), per esempio: 5>3 vero 3>6 falso 4==4 vero 2!=2 falso Nella lezione successiva, utilizzeremo l'istruzione che utilizzerà questi operatori: l'istruzione if . |