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:

Operatore

Descrizione

+

somma

-

differenza

++

incremento

--

decremento

!

negazione logica

~

complemento a bit

 

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:

addizione

sottrazione

moltiplicazione

divisione

resto intero

+

-

*

/

%

c=a+b;

c=b-a;

c=a*b;

c=a/b;

c=a%b;

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.

N.R.

Codice sorgente Opera.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

using System;
  class opera
    {
      static void Main(string[] args)
        {
          // dichiaro una variabile byte con assegnazione diretta
          byte num1=20;
          // stampo il suo valore
          Console.WriteLine("\nLa variabile num1 contiene {0}",num1);
          // incremento di 5 il suo contenuto
          num1+=5;
          // stampo il suo nuovo valore
          Console.WriteLine("La variabile num1 adesso contiene {0}",num1);
          Console.ReadLine();
        }
    } 

 

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:

maggiore di

minore di

uguale a

diverso da

maggiore o uguale
a

minore o uguale
a

>

<

==

!=

>=

<=

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 .

Pagina precedente - Pagina successiva