Desenvolvimento - C#

Série aprenda C# - Estrutura de Decisão

Neste quarto artigo da série vamos aprender sobre estruturas de decisão da linguagem C#.

por Cleber Dantas



Publico: Iniciante

No último artigo da série aprenda C# aprendemos sobre os operadores da linguagem. São eles: Operadores aritméticos, operadores de atribuição, operadores relacionais e operadores lógicos. Para maiores informações veja:

http://www.linhadecodigo.com.br/artigos.asp?id_ac=1007

Introdução

Neste quarto artigo da série vamos aprender sobre estruturas de decisão da linguagem C#. Basicamente temos dois tipos básicos de instruções de decisão:

if... else;
switch.. case.

if... else

A instrução "if...else" é usada para executar blocos de código condicionalmente através de uma expressão Booleana ( verdadeiro ou falso ). A clausula "else" é opcional e seu conteúdo será executado somente se o resultado da expressão booleana for false ( falso ). Veja o exemplo:

If ( a == 5 )
    System.Console.WriteLine("a é igual a 5");
else
     System.Console.WriteLine("a é diferente de 5");

No código acima na instrução "if" ( Se ) fazemos uma verificação muito simples, onde testamos se "a" é igual a "5" caso seja verdadeiro ( true ) o código logo abaixo é executado, ou seja: "System.Console.WriteLine("a é igual a 5");". Caso o resultado dessa expressão lógica seja falso, ou seja, "a" não seja igual a "5" o código do bloco "else" (se não) será executado, nesse caso: "System.Console.WriteLine("a é diferente de 5");".

Para casos onde nosso código tem mais de uma linha ( o que é mais comum ) devemos usar as chave "{" e "}" para delimitarmos os blocos if e/ou else, veja:

if ( a == 5 && b != 2 )
{
      System.Console.WriteLine("a é igual a 5");
      System.Console.WriteLine("b é diferente a 5");
}

Neste caso temos uma verificação composta, ou seja, verificamos duas condições se "a" é igual a "5" E(&&) se "b" é diferente de "2" essa condição só resultará em verdadeiro caso as duas condições sejam verdadeiras pois estamos usando o operador lógico "&&".

else if

A instrução "else if" é usada quando temos varias condições e pra cada condição temos códigos diferentes, ou seja, fazemos coisas diferentes para cada caso veja o exemplo:

if  ( a== 1)
{
  // perceba que mesmo com uma linha só de código eu posso usar os delimitadores
 System.Console.WriteLine("a é igual a 1");
}
else if ( b ==2 )
{
  System.Console.WriteLine("b é igual a 2");
}
else if( c ==3 )
{
  System.Console.WriteLine("c é igual a 3");
}
else
{
  System.Console.WriteLine("Faz algo caso nenhuma condição seja atendida");
}

Podemos "traduzir" o "else if" para "se caso".

A instrução "if" ainda pode ser emulada de forma mais simples através do operador "?" (interrogação) veja:

int a = (expressãoBooleana) ? 1 : 0;

Nesse caso se a expressão Booleana seja verdadeira ( true ) a variável "a" receberá o valor "1" e caso seja falso ( false ) a variável recebe "0". Veja um exemplo prático:

System.Console.WriteLine(a == 5 ? "Sim a é igual à 5" : "Não a é diferente de 5");

Se "a" for igual a 5 o resultado será: "Sim a é igual à 5", caso "a" não seja igual a "5" o resultado será: "Não a é diferente de 5".

switch... case

A instrução "switch.. case" prove um caminho mais limpo para escrever múltiplas instruções "if..else", veja o exemplo:

switch(a)
{
   case 1:
      System.Console.WriteLine("a é igual a 1");
      break;
   case 2:
      System.Console.WriteLine("a é igual a 2")
      break;
   default:
       System.Console.WriteLine("a não é igual a 1 e nem igual a 2");
        break;
}

Colocamos a variável "a" dentro do "switch" e dentro de nosso código vamos verificando com o "case" o valor de nossa variável. No nosso código temos duas possibilidades para caso seja 1 e caso seja 2 e ainda temos a opção "default" que é conhecida como "case else", ou seja, se nenhum "case" for atendido ela será executada, lembrando que é opcional colocar o "default".

Conclusão

Vimos neste artigo um assunto muito importante para qualquer linguagem de programção as estrutras de decisão. Em C# temos dois tipos basicos como vimos. No proximo artigo da série vamos aprender sobre Estruturas de repetição, espero que tenham gostado do artigo e até o próximo!

Cleber Dantas

Cleber Dantas - Ministra palestras e mini-cursos, MSP (Microsoft Student Partner), MCAD (Microsoft Certified Application Developer) e MCTS (Microsoft certified Technology Specialist). Membro do comitê Web/Infra do INETA Brasil (International .NET Association), colaborador do Portal Linha de código e IMasters. Trabalha com a plataforma .NET desde 2003.