Compartilhar via


if-else (Referência de C#)

Uma declaração de if que identifica a instrução para executar baseie no valor de uma expressão de Boolean . No exemplo, Booleanresult variável é definido como true e então fazer o check-in da declaração de if . A saída é 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.");
}

Você pode executar os exemplos neste tópico colocando-os no método de Main de um aplicativo de console.

Uma declaração de if em C# pode ter duas formas, como mostra o exemplo a seguir.

// 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.

Em uma instrução de if-else , se condition avalia para verdadeiro, then-statement executa. Se condition é falso, else-statement executa. Porque condition não pode ser simultaneamente verdadeiro e falso, then-statement e else-statement de uma instrução de if-else podem nunca ambas a execução. Após then-statement ou as sequências de else-statement , o controle é transferido para a próxima declaração após a declaração de if .

Em uma instrução de if que não inclua uma declaração de else , se condition é verdadeiro, then-statement executa. Se condition é falso, o controle será transferido para a próxima declaração após a declaração de if .

then-statement e else-statement podem consistir de uma única instrução ou várias declarações que são colocados entre chaves ({}). Para uma única instrução, as chaves são opcionais mas recomendadas.

A instrução ou instruções em then-statement e em else-statement podem ser do tipo, incluindo outra instrução de if aninhado dentro da declaração de if original. Em instruções de if aninhadas, cada cláusula de else pertence a if o último que não tem elsecorrespondente. No exemplo, Result1 aparece se m > 10 e n > 20 avaliada como true. Se m > 10 é verdadeiro mas n > 20 é falso, Result2 aparece.

// 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, em vez disso, você deseja Result2 para aparecer quando (m > 10) é falso, você pode especificar que a associação usando chaves para estabelecer o início e fim da instrução aninhada de if , como mostra o exemplo a seguir.

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

Result2 aparece se a condição (m > 10) avalia como false.

Exemplo

No exemplo a seguir, você insere um caractere de teclado, e o programa usa uma instrução aninhada de if para determinar se o caractere de entrada é um caractere alfabético. Se o caractere de entrada é um caractere alfabético, o programa se o caractere de entrada é minúsculo ou maiúscula. Uma mensagem aparece para cada 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.

Você também pode aninhar uma instrução de if em um bloco outro, porque o código a seguir mostra parcial. As instruções de if de aninha exemplo de em dois outros blocos de um apenas e em. Os comentários que especificam condições são verdadeiras ou falso em cada bloco.

// 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.
}

O exemplo determina se um caractere de entrada é uma letra minúscula, uma letra maiúscula, ou um número. Se todas as três condições forem falsas, o caractere não é um caractere alfanumérico. O exemplo exibe uma mensagem para cada 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.

Assim com uma instrução no bloco ou outro o bloco em seguida pode ser qualquer instrução válida, você pode usar qualquer expressão booleana válido para a condição. Você pode usar os operadores lógicos como &&, &, || |e ! para fazer condições compostas. O código a seguir mostra exemplos.

// 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.

Especificação da linguagem C#

Para obter mais informações, consulte a Especificação da linguagem C#. A especificação da linguagem é a fonte definitiva para a sintaxe e o uso de C#.

Consulte também

Referência

Palavras-chave C#

Operador ?: (Referência de C#)

Instrução if-else (C++)

switch (Referência de C#)

Conceitos

Guia de Programação em C#

Outros recursos

Referência de C#