C# if, if...else, if...else if e aninhado if declaração
C# if, if...else, if...else if e instrução if aninhada
Neste artigo, aprenderemos como usar a instrução if, if...else, if...else if em C# para controlar o fluxo de execução do nosso programa.
Testar uma condição é inevitável na programação. Freqüentemente, enfrentaremos situações em que precisamos testar condições (seja
true
ou false
) para controlar o fluxo do programa. Essas condições podem ser afetadas pela entrada do usuário, fator de tempo, ambiente atual onde o programa está sendo executado, etc. Neste artigo, aprenderemos a testar condições usando a instrução if em C#.
Instrução if (if-then) do C#
A instrução if-then do C# executará um bloco de código se a condição fornecida for verdadeira. A sintaxe da instrução if-then em C# é:
if (boolean-expression) { // statements executed if boolean-expression is true }
- A expressão booleana retornará true ou
false
. - Se a expressão booleana retornar
true
, as instruções dentro do corpo de if ( dentro de{...}
) será executado. - Se a expressão booleana retornar
false
, as instruções dentro do corpo de if serão ignoradas.
Por exemplo,
if (number < 5) { number += 5; }
Neste exemplo, a declaração
number += 5;
será executado somente se o valor de number for menor que 5.
Lembra do operador +=?
Como se a instrução funciona?
Exemplo 1:C# instrução if
using System;
namespace Conditional
{
class IfStatement
{
public static void Main(string[] args)
{
int number = 2;
if (number < 5)
{
Console.WriteLine("{0} is less than 5", number);
}
Console.WriteLine("This statement is always executed.");
}
}
}
Ao executarmos o programa, a saída será:
2 is less than 5 This statement is always executed.
O valor de número é inicializado com 2. Então a expressão
number < 5
é avaliado para true
. Assim, o código dentro do bloco if é executado. O código após a instrução if sempre será executado independentemente da expressão. Agora, altere o valor de number para algo maior que
5
, digamos 10
. Ao executarmos o programa a saída será:This statement is always executed.
A expressão
number < 5
retornará false
, portanto, o código dentro do bloco if não será executado. Instrução if...else (if-then-else) em C#
A instrução if em C# pode ter uma instrução else opcional. O bloco de código dentro da instrução else será executado se a expressão for avaliada como
false
. A sintaxe da instrução if...else em C# é:
if (boolean-expression) { // statements executed if boolean-expression is true } else { // statements executed if boolean-expression is false }
Por exemplo,
if (number < 5) { number += 5; } else { number -= 5; }
Neste exemplo, a declaração
number += 5;
será executado somente se o valor de number é menor que
5
. A declaração
number -= 5;
será executado se o valor do número for maior ou igual a
5
. Como se... outra declaração funcionar?
Exemplo 2:C# instrução if...else
using System;
namespace Conditional
{
class IfElseStatement
{
public static void Main(string[] args)
{
int number = 12;
if (number < 5)
{
Console.WriteLine("{0} is less than 5", number);
}
else
{
Console.WriteLine("{0} is greater than or equal to 5", number);
}
Console.WriteLine("This statement is always executed.");
}
}
}
Ao executarmos o programa, a saída será:
12 is greater than or equal to 5 This statement is always executed.
Aqui, o valor de number é inicializado para
12
. Portanto, a expressão number < 5
é avaliado para false
. Assim, o código dentro do bloco else é executado. O código após a instrução if..else sempre será executado independentemente da expressão. Agora, altere o valor de number para algo menor que
5
, digamos 2
. Ao executarmos o programa a saída será:2 is less than 5 This statement is always executed.
A expressão
number < 5
retornará true, portanto, o código dentro do bloco if será executado. O operador ternário em C# fornece um atalho para a instrução if...else do C#.
Instrução C# if...else if (if-then-else if)
Quando temos apenas uma condição para testar, as instruções if-then e if-then-else funcionam bem. Mas e se tivermos uma condição múltipla para testar e executar um dos muitos blocos de código.
Para esse caso, podemos usar a instrução if..else if em C#. A sintaxe para a instrução if...else if é:
if (boolean-expression-1) { // statements executed if boolean-expression-1 is true } else if (boolean-expression-2) { // statements executed if boolean-expression-2 is true } else if (boolean-expression-3) { // statements executed if boolean-expression-3 is true } . . . else { // statements executed if all above expressions are false }
A instrução if...else if é executada do topo para inferior . Assim que uma expressão de teste for
true
, o código dentro desse bloco if (ou então if) é executado. Então o controle salta do bloco if...else if. Se nenhuma das expressões for
true
, o código dentro do bloco else é executado. Alternativamente, podemos usar a instrução switch em tal condição.
Exemplo 3:C# if... else if Declaração
using System;
namespace Conditional
{
class IfElseIfStatement
{
public static void Main(string[] args)
{
int number = 12;
if (number < 5)
{
Console.WriteLine("{0} is less than 5", number);
}
else if (number > 5)
{
Console.WriteLine("{0} is greater than 5", number);
}
else
{
Console.WriteLine("{0} is equal to 5");
}
}
}
}
Ao executarmos o programa, a saída será:
12 is greater than 5
O valor do número é inicializado para
12
. A primeira expressão de teste number < 5
é false
, então o controle se moverá para o bloco else if. A expressão de teste number > 5
é true
daí o bloco de código dentro do else if será executado. Da mesma forma, podemos alterar o valor de
number
alterar o fluxo de execução. Instrução if...else aninhada
Uma instrução if...else pode existir dentro de outra instrução if...else. Essas instruções são chamadas de instruções if...else aninhadas.
A estrutura geral da instrução if…else aninhada é:
if (boolean-expression) { if (nested-expression-1) { // code to be executed } else { // code to be executed } } else { if (nested-expression-2) { // code to be executed } else { // code to be executed } }
As instruções if aninhadas geralmente são usadas quando temos que testar uma condição seguida de outra. Em uma instrução if aninhada, se a instrução if externa retornar true, ela entrará no corpo para verificar a instrução if interna.
Exemplo 4:instrução if...else aninhada
O programa a seguir calcula o maior número entre 3 números usando a instrução if...else aninhada.
using System;
namespace Conditional
{
class Nested
{
public static void Main(string[] args)
{
int first = 7, second = -23, third = 13;
if (first > second)
{
if (firstNumber > third)
{
Console.WriteLine("{0} is the largest", first);
}
else
{
Console.WriteLine("{0} is the largest", third);
}
}
else
{
if (second > third)
{
Console.WriteLine("{0} is the largest", second);
}
else
{
Console.WriteLine("{0} is the largest", third);
}
}
}
}
}
Ao executarmos o programa, a saída será:
13 is the largest
Linguagem C