Stefan Ghinea.it | English versionEnglish version | e-mail

  • Cerca nel sito
   myway con Google:
   
   Web Ghinea.it
   
  • Socialnetwork
Web Agency Prato:
Creazione Siti, Indicizzazione, Ottimizzazione
 
  facebook  twitter  youtube 
 
  • ContattamiSkype
Web Agency Prato:
richiesta informazioni
 
My status
Contattami

Lezione C# – L´istruzione if

Gli operatori relazionali, che abbamo visto nella lezione precedente, 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. Copiatelo ed eseguitelo.

Codice sorgente Ist_if.cs

using System;
class Ist_if
{
static void Main(string[] args)
{
// dichiaro due variabili con assegnazione diretta
innt num1=20;
int num2=120;
if (num1==num2) // eseguo il confronto
{
Console.WriteLine(“Il risultato è:vero”);
}
Console.WriteLine(“\nIstruzione eseguita”);
}
}

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 (che verrà eseguita comunque).

A volte è necessario verificare più condizioni simultaneamente. A tal proposito bisogna introdurre una nuova piccola famiglia di operatori: operatori condizionali. Questi operatori non sono stati descritti nelle lezioni precedenti 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:


test1 test2
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. A tal proposito ci può essere di aiuto questa tabella (detta anche tabella della verità):

&&
TEST1 TEST2 RISULTATO
true true true
true false false
false true false
false false false

Da questa tabella si vede benissimo che il risultato true compare solo una volta e proprio quando entrambi i tests sono true.

Questa è la teoria, ora passiamo alla pratica. L’operatore condizionale AND viene definito dal costrutto && . Per esempio:


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

il blocco di codice verrà eseguito quando sia il test1 sia il test2 risulteranno true. Modifichiamo ora il listato del programma precedente:

Codice sorgente Ist_if2.cs

using System;
class Ist_if2
{
static void Main(string[] args)
{
// dichiaro due variabili con assegnazione diretta
int num1=20;
int num2=120;
if ((num1==20) && (num1 {
Console.WriteLine("Il risultato è: vero");
}
Console.WriteLine("\nIstruzione eseguita");
}
}

la riga 9 è stata modificata inserendo l’operatore and && . Provate a lanciarlo e vedrete che il blocco di codice dell’istruzione if verrà eseguito in quanto entrambe le condizioni 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. Questa è la sua tabella della verità:

||
TEST1 TEST2 RISULTATO
true true true
true false true
false true true
false false false

da cui si evince che basta un solo test che sia true per avere come risultato true. Per utilizzare l’operatore OR, faremo uso del costrutto || (doppio pipe) che viene digitato premendo il tasto SHIFT+\. Modifichiamo il solito codice inserendo l’operatore OR come si vede nel listato alla riga 9.

Codice sorgente Ist_if3.cs

using System;
class Ist_if2
{
static void Main(string[] args)
{
// dichiaro due variabili con assegnazione diretta
int num1=20;
nt num2=120;
if ((num1==35) || (num1 {
Console.WriteLine("Il risultato è: vero");
}
Console.WriteLine("\nIstruzione eseguita");
}
}

Anche in questo caso viene eseguito il blocco di codice relativo.

Poniamoci ora una domanda: come potrei fare eseguire del codice nel caso in cui il risultato del test è falso?

Nel listato precedente non c’era questa possibilità. Avrei potuto aggiungere una nuova istruzione if che avrebbe avuto il compito di testare la nuova condizione. Avrei potuto, ma il C# ci viene incontro con una parola chiave utilizzata appunto con l’if: else. 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 test è false senza bisogno di aggiungere un nuovo test.

Con questo nuovo costrutto possiamo tranquillamente modificare il listato precedente semplicemente aggiungendo le seguenti righe di codice subito dopo la riga 12 lasciando inalterato tutto il resto:


else
{
Console.WriteLine(“Il risultato è: falso”);
}

Provate a cambiare il test affinché si possa eseguire il codice dell’else. Nella prossima lezione, parleremo di un costrutto molto particolare che ci consente di modificare il flusso del programma in base a più valori che può assumere una variabile: l’istruzione switch.

   29/09/2010 08:37:47 am
  • No Related Post
1 Comment »

Un commento a “Lezione C# – L´istruzione if”

  1. admin says:

    C# e .NET sono una copia di successo!

    Lascia un commento

Spam protection by WP Captcha-Free

  • I bannerGhinea.it
minibanner1
minibanner2
minibanner3
minibanner4
  • Sidebar
  • Categories:
  • Abbiamo lanciato a gennaio 2012 un nuovo sito WordPress: tmptecnorestauri.it
    Abbiamo lanciato alla fine di novembre 2011 un nuovo sito WordPress: infortunisticabologna.net
    Un sito amatoriale: www.sorrisodiluna.too.it
    Giochi online: www.mostfun.com
    Sempre classico: www.gianlucabianchi.it
    I siti web della settimana
    WordPress inarrestabile
    La PEC… vola
    Google nemico della memoria?
    Anonymous: nemici pubblici numero uno







    Stefan Ghinea - Consulenze informatiche e soluzioni software
    Via Marchini, 26 - 59100 Prato (PO) - Tel.: 340 2123560; Fax: 0574 027820  E-mail Home page
    © 2010 by GhineaWebSolutions.it