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 DantasNo ú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!