Condividi tramite


if-else (Riferimenti per C#)

Un'istruzione di if identifica che l'istruzione all'esecuzione in base al valore di un'espressione di Boolean. Nell'esempio seguente la variabile Boolean result viene impostata su true e quindi controllata nell'istruzione if. L'output è The condition is true.

bool condition = true;

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

È possibile eseguire gli esempi di questo argomento posizionandoli nel metodo di Main di applicazione console.

Un'istruzione di if in c può accettare due forme, come illustrato di seguito.

// if-else statement
if (condition)
{
    then-statement;
}
else
{
    else-statement;
}
// Next statement in the program.


// if statement without an else
if (condition)
{
    then-statement;
}
// Next statement in the program.

In un'istruzione di if-else, se condition restituisce true, then-statement esecuzione. Se condition è false, else-statement esecuzione. Poiché condition non può essere contemporaneamente true e false, then-statement e else-statement di un'istruzione di if-else non possono mai entrambe l'esecuzione. Dopo then-statement o le esecuzioni di else-statement, il controllo viene trasferito all'istruzione seguente dopo l'istruzione di if.

In un'istruzione di if che non include un'istruzione di else, se condition è true, then-statement esecuzione. Se condition è false, il controllo viene trasferito all'istruzione seguente dopo l'istruzione di if.

Sia then-statement che else-statement possono essere costituiti da un'unica istruzione o più istruzioni racchiuso tra parentesi graffe ({}). Per una singola istruzione, le parentesi graffe sono facoltative ma consigliate.

L'istruzione o le istruzioni in then-statement e in else-statement può essere di qualsiasi tipo, compreso un'altra istruzione di if annidati nell'istruzione originale di if. Nelle istruzioni annidate di if, ogni clausola di else appartiene all'ultimo if che non dispone di elsecorrispondente. Nell'esempio seguente, Result1 viene visualizzato se sia m > 10 che n > 20 restituiscono true. Se m > 10 è true ma n > 20 è false, Result2 visualizzato.

// Try with m = 12 and then with m = 8. 
int m = 12;
int n = 18;

if (m > 10)
    if (n > 20)
    {
        Console.WriteLine("Result1");
    }
    else
    {
        Console.WriteLine("Result2");
    }

Se, invece, si Result2 per essere visualizzato quando (m > 10) è false, è possibile specificare che associazione utilizzando le parentesi per indicare l'inizio e la fine dell'istruzione annidato di if, come illustrato di seguito.

// Try with m = 12 and then with m = 8. 
if (m > 10)
{
    if (n > 20)
        Console.WriteLine("Result1");
}
else
{
    Console.WriteLine("Result2");
}

Result2 viene visualizzato se la condizione (m > 10) restituisce false.

Esempio

Nell'esempio, immettere un carattere dalla tastiera e il programma utilizza un'istruzione annidato di if per determinare se il carattere di input è un carattere alfabetico. Se il carattere di input è un carattere alfabetico, i controlli di programma se il carattere di input è minuscolo o maiuscolo. Un messaggio per ogni caso.

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("The character isn't an alphabetic character.");
}

//Sample Output: 

//Enter a character: 2 
//The character isn't an alphabetic character. 

//Enter a character: A 
//The character is uppercase. 

//Enter a character: h 
//The character is lowercase.

È inoltre possibile annidare un'istruzione di if in un altro blocco, come mostra parziali di codice. Le istruzioni di if di annidamenti di esempio in due blocchi altri e uno quindi blocco. I commenti specificano le condizioni o false in ogni blocco.

// Change the values of these variables to test the results. 
bool Condition1 = true;
bool Condition2 = true;
bool Condition3 = true;
bool Condition4 = true;

if (Condition1)
{
    // Condition1 is true.
}
else if (Condition2)
{
    // Condition1 is false and Condition2 is true.
}
else if (Condition3)
{
    if (Condition4)
    {
        // Condition1 and Condition2 are false. Condition3 and Condition4 are true.
    }
    else
    {
        // Condition1, Condition2, and Condition4 are false. Condition3 is true.
    }
}
else
{
    // Condition1, Condition2, and Condition3 are false.
}

L'esempio seguente determina se un carattere di input è una minuscola, una lettera maiuscola, o un numero. Se tutte e tre le condizioni sono false, il carattere non sia un carattere alfanumerico. L'esempio visualizza un messaggio per ogni caso.

Console.Write("Enter a character: ");
char ch = (char)Console.Read();

if (Char.IsUpper(ch))
{
    Console.WriteLine("The character is an uppercase letter.");
}
else if (Char.IsLower(ch))
{
    Console.WriteLine("The character is a lowercase letter.");
}
else if (Char.IsDigit(ch))
{
    Console.WriteLine("The character is a number.");
}
else
{
    Console.WriteLine("The character is not alphanumeric.");
}

//Sample Input and Output: 
//Enter a character: E 
//The character is an uppercase letter. 

//Enter a character: e 
//The character is a lowercase letter. 

//Enter a character: 4 
//The character is a number. 

//Enter a character: = 
//The character is not alphanumeric.

Come istruzione nel blocco else o nel blocco di funzioni può essere qualsiasi istruzione valido, è possibile utilizzare qualsiasi espressione booleana valida per la condizione. È possibile utilizzare gli operatori logici come &&, &, ||, |e ! per eseguire le condizioni composte. Il codice seguente vengono illustrati esempi.

// NOT
bool result = true;
if (!result)
{
    Console.WriteLine("The condition is true (result is false).");
}
else
{
    Console.WriteLine("The condition is false (result is true).");
}

// Short-circuit AND
int m = 9;
int n = 7;
int p = 5;
if (m >= n && m >= p)
{
    Console.WriteLine("Nothing is larger than m.");
}

// AND and NOT
if (m >= n && !(p > m))
{
    Console.WriteLine("Nothing is larger than m.");
}

// Short-circuit OR
if (m > n || m > p)
{
    Console.WriteLine("m isn't the smallest.");
}

// NOT and OR
m = 4;
if (!(m >= n || m >= p))
{
    Console.WriteLine("Now m is the smallest.");
}
// Output:
// The condition is false (result is true).
// Nothing is larger than m.
// Nothing is larger than m.
// m isn't the smallest.
// Now m is the smallest.

Specifiche del linguaggio C#

Per altre informazioni, vedere la Specifiche del linguaggio C#. La specifica del linguaggio costituisce il riferimento ufficiale principale per la sintassi e l'uso di C#.

Vedere anche

Riferimenti

Parole chiave di C#

Operatore ?: (Riferimenti per C#)

Istruzione if-else (C++)

switch (Riferimenti per C#)

Concetti

Guida per programmatori C#

Altre risorse

Riferimenti per C#