Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Comando if
  2. Comando if-else
  3. Comando if-else-if
  4. Comando if ternário
  5. Comando if aninhado
  6. múltiplas condições

Os comandos de decisão bem como o seus funcionamentos já foram discutidos em Portugol: Comandos de Decisão e Tutorial C: Comandos de Decisão sendo a leitura recomendada.

Os operadores relacionais que podem ser utilizados como os comandos baixo podem ser vistos em C# : Operadores.

A linguagem de C# fornece os comandos de decisão if, if-else, if-else-if e if ternário. Nesta parte do tutorial vamos aprender esses quatro comandos com seus fluxogramas, sintaxes e exemplos.

C# possui o comando if que permite que façamos validações para a execução de um trecho de código de acordo com uma ou mais verificações feitas pelo comando que retorna um booleano. Caso o retorno seja true, o bloco do comando é executado.

Fig. 1: Fluxograma - Comando if
Sintaxe
if(condicao)
{
  //declarações
}
Onde
condicao: expressão contendo operadores lógicos ou relacionais
Exemplo 1
using System;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        int a = 1;
        if( a == 1)
        {
            Console.WriteLine(a);
        }
    }
}
Saída
1

Quando o trecho de código contido no corpo do comando if for apenas uma linha, o uso de { e } é opcional. Por boa prática, sempre utilizar { e } para melhor legibilidade do código e evitar erros de compilação.

No exemplo anterior, ao validar uma condição executamos um trecho de código caso a condição seja true. Caso seja necessário executar um trecho de código quanto uma condição for false, utilizamos o comando if-else.

Fig. 2: Fluxograma - Comando if-else
Sintaxe
if(condicao)
{
  //se condicao == true
  //trecho de código será executado
}
else
{
  //se condicao == false
  //trecho de código será executado
}
Exemplo 2
using System;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        int a = 1;
        
        if( a == 1)
        {
            Console.WriteLine(1);
        }
        else
        {
            Console.WriteLine(2);
        }
    }
}
Saída
1

Quando o trecho de código contido no corpo do comando if-else for apenas uma linha, o uso de { e } é opcional.

Quando é necessário realizar validações ou verificações em cascata, podemos utilizar o comando if-else-if fornecido pela linguagem C#.

Fig. 3: Fluxograma - Comando if-elseif
Sintaxe
if(condicao1)
{
  //se condicao1 == true  
}
else if (condicao2)
{
  //se condicao2 == true
}
else if(condicao3)
{
  //se condicao == true
}
else
{
 //condicao1, condicao2, condicao3 == false
}
Exemplo 3
using System;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        int a = 3;
        
        if( a == 1)
        {
            Console.WriteLine(1);
        }
        else if (a == 2)
        {
            Console.WriteLine(2);
        }
        else
        {
            Console.WriteLine(-1)
        }
    }
}
Saída
-1

A linguagem C# também usa o if ternário da linguagem C/C++. Esse comando é representado pelo operador (?:) usado em pequenos trechos condicionais.

O if ternário pode ser utilizando para retornar expressões aritméticas e booleanas ou executar métodos com ou sem retorno, por exemplo.

Fig. 3: Fluxograma - Comando if ternário
Sintaxe
(condicao) ? expressao1 : expressao2;

Caso condicao seja verdadeira, a instrução contida em expressão1 será retornada ou executada. Sendo condicao seja falsa, a instrução contida em expressao2 será retornada ou executada.

Exemplo 4
using System;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        int a = 1;
        int b = ( a == 1) ? a*2 : a*3;
        Console.WriteLine(b);
        Console.WriteLine(( a == 1) ? a*2 : a*3);
    }
}
Saída
2
2

O if ternário, assim como o if, permite que seja aninhado. Porém, o uso excessivo pode vir a prejudicar a legibilidade do código como no exemplo básico abaixo.

Exemplo 5
using System;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        int a = 2;
        int b = ( a == 1) ? a*2 : (( a == 2) ? a*2 : a*3);
        
        Console.WriteLine(b);
    }
}
Saída
4
  1. 05/08/2025 - revisão 2 - Ajustes: pontuais, 'objetivos', link 'Operadores', ordem fluxogramas, e sintaxes
  2. 14/10/2024 - revisão 1 - Correção: links 'Anterior' e portugol; Ajustes gramaticais pontuais
  3. 06/03/2024 - versão inicial