if-else (Riferimenti per C#)

L'istruzione if seleziona un'istruzione per l'esecuzione in base al valore di un'espressione Boolean. Nell'esempio seguente la variabile Boolean result viene impostata su true e quindi controllata nell'istruzione if. L'output è The variable is set to true.

bool result = true;

if (result)
{
    Console.WriteLine("The variable is set to true.");
}
else
{
    Console.WriteLine("The variable is set to false.");
}

Se l'espressione tra parentesi restituisce true, viene eseguita l'istruzione Console.WriteLine("The variable is set to true."); . Dopo l'esecuzione dell'istruzione if, il controllo viene trasferito all'istruzione successiva. In questo esempio l'else non viene eseguito.

Se si desidera eseguire più di un'istruzione, è possibile eseguire in modo condizionale più istruzioni includendole in blocchi tramite {} come nell'esempio riportato in precedenza.

L'istruzione o le istruzioni da eseguire durante la verifica della condizione possono essere di qualsiasi tipo, compresa un'altra istruzione if annidata nell'istruzione if originale. Nelle istruzioni if annidate, la clausola else appartiene all'ultima istruzione if che non dispone di una clausola else corrispondente. Di seguito è riportato un esempio.


int x = 12;
int y = 18;

if (x > 10)
    if (y > 20)
        Console.Write("Statement_1");
    else
        Console.Write("Statement_2");

In questo esempio verrà visualizzato Statement_2 se la condizione (y > 20) restituisce false. Tuttavia, per associare Statement_2 alla condizione (x >10), è necessario utilizzare le parentesi graffe.


if (x > 10)
{
    if (y > 20)
        Console.Write("Statement_1");
}
else
    Console.Write("Statement_2");

In questo caso, verrà visualizzato Statement_2 se la condizione (x > 10) restituisce false.

Esempio

In questo esempio, il programma controlla che il carattere inserito da tastiera sia di tipo alfabetico. In caso affermativo, controlla se il carattere è minuscolo o maiuscolo e visualizza il messaggio appropriato in entrambi i casi.


    class IfTest
    {
        static void Main()
        {
            Console.Write("Enter a character: ");
            char c = (char)Console.Read();
            if (Char.IsLetter(c))
            {
                if (Char.IsLower(c))
                {
                    Console.WriteLine("The character is lowercase.");
                }
                else
                {
                    Console.WriteLine("The character is uppercase.");
                }
            }
            else
            {
                Console.WriteLine("Not an alphabetic character.");
            }
        }

        /*
        Input:
        2
        Sample Output
        Enter a character: 2
        The character is not an alphabetic character.
        Additional sample might look as follows:
        Run #2:
        Enter a character: A
        The character is uppercase.
        Run #3:
        Enter a character: h
        The character is lowercase.
         * */
    }

È inoltre possibile estendere l'istruzione if per gestire più condizioni utilizzando la disposizione else-if:

            if (Condition_1)
            {
                // Statement_1;
            }
            else if (Condition_2)
            {
                // Statement_2;
            }
            else if (Condition_3)
            {
                // Statement_3;
            }
            else
            {
                // Statement_n;
            }

Nell'esempio riportato di seguito viene controllato se il carattere immesso è minuscolo, maiuscolo o è un numero. In caso negativo, il carattere non è alfanumerico. Il programma utilizza la struttura else-if.

    public class IfTest3
{
    static void Main()
    {
        Console.Write("Enter a character: ");
        char c = (char)Console.Read();

        if (Char.IsUpper(c))
        {
            Console.WriteLine("Character is uppercase.");
        }
        else if (Char.IsLower(c))
        {
            Console.WriteLine("Character is lowercase.");
        }
        else if (Char.IsDigit(c))
        {
            Console.WriteLine("Character is a number.");
        }
        else
        {
            Console.WriteLine("Character is not alphanumeric.");
        }
    }
}
    /*
        Sample Input:  E

        Sample Output:
        Enter a character: E
        The character is uppercase.

        Additional sample runs might look as follows:
        Run #2
        Enter a character: e
        The character is lowercase.
        Run #3:
        Enter a character: 4
        The character is a number.
        Run #4:
        Enter a character: $
        The character is not alphanumeric.
    */

Specifiche del linguaggio C#

Per ulteriori informazioni, vedere la Specifiche del linguaggio C#. La specifica del linguaggio è la fonte ufficiale per la sintassi e l'utilizzo di C#.

Vedere anche

Riferimenti

Parole chiave di C#

Operatore ?: (Riferimenti per C#)

if-else Statement (C++)

switch (Riferimenti per C#)

Concetti

Guida per programmatori C#

Altre risorse

Riferimenti per C#