quarta-feira, 3 de abril de 2013

Condições - IF e Switch


É muito comum durante a programação ter que fazer validações e podemos fazer isso de diversas formas.
Podemos utilizar:
  • If
  • Else if
  • Switch

Um exemplo muito comum é validar se o usuário está ativo ou não.
bool ativo = true;
if (ativo == true)
Console.Write("Usuário ativo");
else
Console.Write("Usuário inativo");

Para utilizar o Else if é bem simples, o conceito é o mesmo do if
string status = "S";
if (status == "A")
Console.Write("Usuário ativo");
else if (status == "I")
Console.Write("Usuário inativo");
else if (status == "B")
Console.Write("Usuário bloqueado");
else
Console.Write("Usuário com status não definido");

Podemos fazer a mesma validação acima utilizando o Switch:
string status = "S";
switch (status)
{
case "A":
    Console.Write("Usuário ativo");
    break;
case "I":
    Console.Write("Usuário inativo");
    break;
case "B":
    Console.Write("Usuário bloqueado");
    break;
default:
    Console.Write("Usuário com status não definido");
    break;

}

Onde cada case representa uma verificação e o default é o que será executado caso não tenha entrado em um dos case anteriores. 

A diferença entre o If e o Switch é que o Switch permite verificar o valor de apenas um campo e o if permite criar uma validação mais complexa utilizando operadores lógicos:
  • &&  - E
  • ||  - ou
  • != - Diferente

Veja o exemplo:
string status = "S";
string nome = "celso";
if (status == "S" && nome == "celso")
{
    Console.Write("Usuário celso está ativo");
}
else if (nome == "celso")
{
    Console.Write("Usuário celso não está ativo");
}
else
{
    Console.Write("Não é o celso");
}


Um outro ponto importante é a forma que o if pode ser escrito, em bloco ou de resultado único:
bool ativo = true;
if (ativo == true)
Console.Write("Usuário ativo");
else
Console.Write("Usuário inativo");

No exemplo acima não utilizei “{}“  entre o if e o else. Isso porque só vou ter uma linha de resposta para minha condição. Caso haja mais de uma linha no bloco, como no exemplo abaixo, inicializar e encerrar o bloco passa a ser obrigatório.

bool ativo = true;
if (ativo == true)
{
    Console.Write("Usuário ativo");
    Console.WriteLine();
    Console.Write("Verificado às: "+DateTime.Now.ToString());
}
else
{
    Console.Write("Usuário inativo");
    Console.WriteLine();
    Console.Write("Verificado às: " + DateTime.Now.ToString());
}


Nenhum comentário:

Postar um comentário