Início > C# > [C#] Estruturas condicionais (IF/ELSE)

[C#] Estruturas condicionais (IF/ELSE)

Estruturas condicionais são comuns e necessárias em todos os programas e em qualquer linguagem de programação. A declaração if…else está entre as mais utilizadas pelos desenvolvedores. Este pequeno artigo aborda a sintaxe da declaração if…else e também explora outras construções condicionais presentes no C#. Algumas delas pouco conhecidas dos novos programadores e mais familiares para quem já utilizava a linguagem C.

Este artigo esta sendo escrito para ajudar os programadores iniciantes, que sempre apresentam dúvidas sobre a sintaxe da declaração if…else. Usar ou não delimitadores de bloco ({})? Posso escrever a declaração if…else em uma única linha? A maioria dos programadores que estão iniciando na linguagem C#depara-se com essas dúvidas e as vezes permanecem com ela por tempos.

Usando a instruções if para tomar decisões

A condição if…else é sempre utilizada quando você precisa escolher entre executar dois ou mais blocos diferentes de códigos dependendo do resultado do resultado de uma condição definida e que deve ter seu resultado de forma booleana (verdadeiro ou falso).

A sintaxe de uma instrução if é a seguinte (if e else são palavras chaves)

if (condição)
    // comandos 1
else
    // comandos 2

Considere a condição sendo avaliada como verdadeiro (true), então o comando 1 será executado; caso contrário, a condição seja falsa (false)  o comando 2 é executado. A palavra-chave else e o comando 2 são opcionais. Se não houver uma claúsula else, nada acontecerá quando a condição for falsa.

if (vidaJogador > 0)
    Console.WriteLine("Jogador continua vivo.");
else
    Console.WriteLine("Jogador esta morto.");

Outros exemplos de uso:

// considere as variáveis vidasJogador1, vidasJogador2
int vidasJogador1 = 0;
int vidasJogador2 = 5;

// declaração IF em uma única linha (o comando não será executado preste atenção nos valores)
if (vidasJogador1 > vidasJogador2) Console.WriteLine("A vida do jogador 1 é maior que a do jogador 2);

// declaração IF...ELSE em duas linhas
if (vidasJogador1 > vidasJogador2) Console.WriteLine("vidas do jogador 1 > vidas do jogador 2");
else Console.WriteLine("vidas do jogador 1 < vidas do jogador 2");

// declaração IF...ELSE com quebra de linha
if (vidasJogador1 > vidasJogador2)
    Console.WriteLine("vidasJogador1 > vidasJogador2");
else
    Console.WriteLine("vidasJogador1 < vidasJogador2");

// declaração IF...ELSE em uma única linha
if (vidasJogador1 > vidasJogador2) Console.WriteLine("vidas 1 > vidas 2"); else Console.WriteLine("vidas 1 < vidas 2");

// utilização dos delimitadores de bloco neste caso
// apesar de válido é desnecessário.
if (vidasJogador1 > vidasJogador2)
{
    Console.WriteLine("vidasJogador1 > vidasJogador2");
}
else
{
    Console.WriteLine("vidasJogador1 < vidasJogador2");
}

Usando blocos par agrupar instruções

Em algumas situações. você desejará executar mais de um comando quando uma condição for verdadeira. Para fazer isso, você deverá agrupar estes comandos dentro de um bloco. Um bloco é simplesmente uma sequência de instruções ou comandos agrupadas entre chaves de abertura e fechamento. No exemplo a seguir, duas instruções são agrupadas.

// utilização dos delimitadores de bloco neste caso
// é necessária para que várias ações sejam executadas
// caso a expressão seja satisfeita.
if (vidaJogador1 > vidaJogador2)
{
    MessageBox.Show("vidaJogador1 > vidaJogador1");
    jogador1.Atacar();
}
else
{
    MessageBox.Show("vidaJogador1 < vidaJogador2");
    jogador2.Atacar();
}

Instruções if em cascata

O if aninhado é simplesmente um if dentro da declaração de um outro if externo. O único cuidado que devemos ter é o de saber exatamente a qual if um determinado else está ligado. Vejamos um exemplo:

if (day == 0)
    Console.WriteLine("Domingo");
else if (day == 1)
    Console.WriteLine("Segunda");
else if (day == 2)
    Console.WriteLine("Terça");
else if (day == 3)
    Console.WriteLine("Quarta");
else if (day == 4)
    Console.WriteLine("Quinta");
else if (day == 5)
    Console.WriteLine("Sexta");
else if (day == 6)
    Console.WriteLine("Sabado");
else
    Console.WriteLine("Nao existe");

Condições Ternárias

C# oferece outra opção para construção de declarações condicionais. Os operadores ?:representam uma boa alternativa para quem já estava habituado com a linguagem C. Podemos até fazer uma comparação da sintaxe utilizadas com esses operadores com a função IIF no VB ou VBA.

A sintaxe utilizada é <expressão> ? <verdadeira> : <falsa>. Veja os exemplos no quadro abaixo:

int x = 1;
int y = 2;
int z = 3;

// definindo a mesagem de acordo com a expressão
Console.WriteLine(x > y ? "X > Y" : "X < Y");

// atribui valor para z de acordo com a expressão
z = x > y ? x * z : y * z;
Console.WriteLine(z.ToString());

// expressões condicionais aninhadas
// z = <expr1> ? <true> : <expr2> ? <true> : <false>
z = x > y && x == 1 ? x * z : y > 1 ? y * z : y * z

Abraços galera, até a próxima

CategoriasC# Tags:, , ,
  1. ricardo
    11/03/2010 às 2:26 pm | #1

    tenho uma duvida e tou a estudar isto pela 1 vez gostaria de 1 ajuda aqui vai a pergunta.

    1. Verifique se um aluno passou a uma disciplina. Mostre uma mensagem de “Aprovado”, caso seja igual ou superior a 10 ou “Reprovado”, caso contrário.

    e eu tenho isto
    {
    class Program
    {
    static void Main(string[] args)
    {
    string aluno;
    int nota;
    {

    if (nota >= 10)
    {
    Console.WriteLine(“Aluno Aprovado”);
    }
    else
    {
    Console.WriteLine(“Aluno Reprovado”);
    }
    }

    Console.ReadLine();
    }
    }

    • Kleber Andrade
      11/03/2010 às 2:36 pm | #2

      Amigo não existe { depois de int nota;
      Outra coisa, qual o valor de nota ? para você estar comparando >= 10 ? ela esta vazia nesse momento.
      Antes de você verificar o valor da nota você deve atribuir uma valor para ela, isso pode ser feito com o Console.ReadLine().
      Tente resolver, com essas dicas.
      Abraços,

  2. Emerson
    11/16/2010 às 8:39 pm | #3

    Faltou o comando if else no C# 2010, ex: (if a > 10 and a < 20) faltou isso aew cara.
    da uma revisada.

    Mto bom!
    Abraço.

    • Kleber Andrade
      11/17/2010 às 9:33 am | #4

      Olá amigo, bem lembrado… esse comando eu não lembrava, pois como venho da linguagem C/C++ acabei não lembrando deste no C#. Obrigado, logo vou add ao tutorial.

      Att,

  3. 01/25/2011 às 10:17 am | #5

    Visite meu portal. Lá tem uma video aula gratuita sobre estruturas condicionais onde tem um exemplo parecido.
    http://henrylle.com.br/tag/iniciante/

  4. Rogério M.X.J.R
    01/21/2012 às 9:02 am | #6

    Já adicionei o blog nos favoritos muito bom estou começando a estudar programação e o trabalho de vocês me ajudou muito parabéns pelo Ótimo trabalho.

  1. Nenhum trackbacks ainda.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Join 29 other followers