In qualsiasi linguaggio di programmazione le istruzioni condizionali permettono di verificare determinate condizioni come ad esempio l’uguaglianza, la disuguaglianza o semplicemente se un elemento è maggiore di un altro.
Queste istruzioni sono utilizzate per consentire al programma di “prendere decisioni” a seconda del verificarsi o meno di una data condizione.
Analizziamo quindi il costrutto if / else con un esempio:
if (numero == 4)
{
Console.WriteLine ("La variabile numero è uguale a 4");
}
else
{
Console.WriteLine ("La variabile numero è diversa da 4");
}
In questo caso, controlliamo il valore della variabile numero, e se il valore è uguale a 4, allora viene eseguito il codice contenuto nelle parentesi graffe, altrimenti viene eseguito il codice contenuto dopo l’else.
All’interno dell’if, per confrontare dei valori, possiamo utilizzare i seguenti operatori (a e b possono essere numeri o variabili):
- a == b (a uguale a b)
- a != b (a è diverso da b)
- a > b (a maggiore di b)
- a >= b (a è maggiore o uguale a b)
- a < b (a è minore di b)
- a <= b (a è minore o uguale a b)
é possibile inoltre concatenare gli operatori, utilizzando &&:
if (numero > 5 && numero != 6)
In questo caso, per eseguire il codice interno all’if, la variabile numero dovrà essere sia maggiore di 5 che diversa da 6, quindi dovrà verificare entrambe le condizioni.
Alle volte potremmo essere interessati a verificare due sia vera solo una di due (o più condizioni). Utilizziamo quindi l’operatore || (che indica oppure se):
if (numero > 5 || numero < 2)
In questo caso specifico, va bene qualunque valore superiore a 5 oppure inferiore a 2.
Infine, oltre al costrutto if / else, troviamo anche l’else if (letteralmente “oppure se”):
if (numero == 4)
{
Console.WriteLine ("La variabile numero è uguale a 4");
}
else if (numero == 5)
{
Console.WriteLine ("La variabile numero è uguale a 5");
}
else
{
Console.WriteLine ("La variabile numero è diversa da 4 e 5");
}
In questo caso, se la variabile numero è uguale a 4, eseguire il codice interno all’if. Se non lo è, viene controllata la seconda condizione (numero == 5) ed eventualmente eseguito il codice. Se neanche la seconda condizione è verificata, viene eseguito infine il codice contenuto all’interno dell’else.
Le differenze tra l’if classico e l’if ternario in C#
L’operatore ternario nel C# ci permette di avere un’alternativa al classico costrutto if / else.
Esso permette di assegnare ad una variabile un valore, a seconda che la condizione risulti vera o falsa.
Quindi anzichè usare un costrutto if / else del tipo:
string result = "";
if (health > 0)
{
message = "Player is alive";
}
else
{
message = "Player is dead";
}
Possiamo utilizzare l’if ternario per sintetizzare il codice utilizzando una sola riga:
message = (health > 0) ? "Player is alive" : "Player is dead";
Con questo costrutto, verifichiamo la condizione (health > 0).
Se è vera, dopo il “?” inseriamo il valore che dovrà avere la variabile message (“Player is alive”). Se invece la condizione non si è verificata, dopo il “:” andremo ad inserire l’altro valore che dovrà avere la variabile, in questo caso “Player is dead”.