FlooidArt Blog

another developers weblog

[C#] L’istruzione IF

Posted by Andrea Turri On November - 16 - 2009

Gli operatori relazionali, che abbamo visto nell’articolo riguardante gli operatori, servono fondamentalmente a confrontare due valori.
Il risultato di questo confronto viene utilizzato per modificare il flusso di un programma, cioè verranno eseguite delle istruzioni invece di altre. L’istruzione if ci consente appunto di effettuare tutto questo.
La sintassi è:

if (val1 [operatore] val2)
        {
           istruzione/i;
        }

Dove [operatore] è uno degli operatori relazionali visti, val1 e val2 sono due variabili o valori costanti ed infine il blocco di codice è l’insieme delle istruzioni che verrà eseguito.
Se il risultato del confronto è vero, il blocco di codice verrà eseguito, in caso contrario verrà eseguita direttamente l’istruzione subito dopo l’if.
Il seguente codice descrive un semplice utilizzo dell’istruzione if:

1 using System;
2 class Ist_if
3  {
4   static void Main(string[] args)
5     {
6                 // dichiaro due variabili con assegnazione diretta
7       innt num1=20;
8       int num2=120;
9       if  (num1==num2) // eseguo il confronto
10           {
11              Console.WriteLine("Il risultato è:vero");
12            }
13        Console.WriteLine("\nIstruzione eseguita");
14      }
15  }

La riga 9 contiene l’istruzione if che confronta le due variabili tramite l’operatore ==.
Come potete notare le due variabili (il
contenuto) non sono uguali quindi l’istruzione di stampa contenuta nel blocco di codice non verrà eseguita. Infatti il risultato del confronto è falso (false) così il controllo del programma passerà direttamente all’istruzione della riga 13.

A volte è necessario verificare più condizioni simultaneamente. A tal proposito bisogna introdurre una nuova piccola famiglia di operatori: operatori condizionali.
Di questi operatori non ho parlato nell’articolo precedente perché sono in stretta relazione con l’istruzione if e mi sembrava giusto parlarne qui.

Operatore condizionale AND (&&).

In una istruzione if, a volte, è necessario testare contemporaneamente più di una condizione. Per esempio:

if ((val1 [operatore]  val2) [op. condiz.] (val3 [operatore] val4))
          {
             istruzione/i;
          }

L’istruzione nel blocco di codice verrà eseguita se e solo se entrambi i tests risulteranno veri. Quindi se almeno uno dei test dovesse risultare falso (false) il blocco di codice non verrà eseguito.

Questa è la teoria, ora passiamo alla pratica.

L’operatore condizionale AND viene definito dal costrutto && . Per esempio:

if ((val1 <= val2) && (val3 > val4))
        {
          istruzione/i;
        }

il blocco di codice verrà eseguito quando sia il test1 sia il test2 risulteranno true.

Operatore condizionale OR (||).

Al contrario dell’operatore AND, potremmo avere necessità di testare che almeno una condizione del confronto risulti vera. A tal proposito utilizzeremo l’operatore OR.
La sintassi è la stessa.

Ma come potrei far eseguire del codice nel caso in cui il risultato del “controllo” è falso?

Nell’esempio precedente non c’era questa possibilità. Avrei potuto aggiungere una nuova istruzione if che avrebbe avuto il compito di testare la nuova condizione. Ma C# ci viene incontro con una parola chiave utilizzata appunto con l’ifelse. Questa è la sua sintassi:

if (val1 [operatore] val2)
           {
             istruzioni 1; // se true
            }
    else
           {
             istruzioni 2; // se false
           }

Il costrutto else è l’alternativa dell’if, cioè esegue il blocco di codice istruzioni 2 se il risultato del controllo è false senza bisogno di aggiungere un nuovo controllo.


Leave a Reply

About Me

There is something about me..

Twitter

    Photos

    B_ingresso01A_ingressoA_ascensore02Ascensore01ok06ok05ok03okok01180912Palco_02