Condividi tramite


if-else (Riferimenti per C#)

Aggiornamento: novembre 2007

L'istruzione if seleziona un'istruzione per l'esecuzione in base al valore di un'espressione Boolean. Nell'esempio riportato di seguito un flag BooleanflagCheck è impostato su true e in seguito controllato nell'istruzione if. L'output è The flag is set to true.

bool result = true;

if (result == true)
{
    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 boolean flag 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 nidificata nell'istruzione if originale. Nelle istruzioni if nidificate, 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 le sezioni riportate di seguito in Specifiche del linguaggio C#:

  • 5.3.3.5 Istruzioni if

  • 8.7.1 Istruzione if

Vedere anche

Concetti

Guida per programmatori C#

Riferimenti

Parole chiave di C#

Operatore ?: (Riferimenti per C#)

The if-else Statement

switch (Riferimenti per C#)

Altre risorse

Riferimenti per C#