Ícone do site Celso Kitamura

Operador Ternário – Estruturas de decisão [C#]

Operador Ternário - Estruturas de Decisão - C#
5/5 - (2 votes)

Já vimos o operador ternário no artigo sobre operadores do C#. Mas ele merece um post a parte, pois ele é também uma estrutura de decisão.

 

Introdução

 

A linguagem C# possui um tipo especial de operador de decisão (?:) chamado operador ternário.

Sintaxe

 

var resultado = expressão booleana ? declaração se verdadeiro : declaração se falso;

 

Como podemos ver na sintaxe acima, o operador ternário possui três partes.

 

A primeira parte (antes do ?) é uma expressão condicional que retorna um valor booleano – verdadeiro ou falso.

 

A segunda parte (depois do ? e antes do : ) contém uma declaração que será retornada se a expressão condicional na primeira parte for avaliada como verdadeira.

 

A terceira parte inclui outra declaração que será retornada se a expressão condicional retornar falso.

 

Observação: o operador ternário retorna um valor ou expressão incluída na segunda ou terceira parte. Ele não executa as declarações.

 

Considerando o exemplo abaixo onde a expressão condicional x > y retorna falso, então ele retorna a primeira declaração depois do ?.

 

Exemplo:

 

using System; 
 
class ExemploOperadorTernario
{ 
    static void main() 
    { 
        int x = 20, y = 10;
 
        var resultado = x > y ? "x é maior que y" : "x é menor que y";
 
        Console.WriteLine(resultado);
    }
}

 

 

O operador ternário por retornar um valor de qualquer tipo. Então é aconselhável armazená-lo em uma variável implícita (var)

 

Por exemplo, ele pode retornar um valor inteiro como mostrado abaixo.

 

Exemplo:

 

using System; 

class ExemploOperadorTernario
{ 
    static void main() 
    { 
        int x = 20, y = 10;

        var resultado = x > y ? x : y;

        Console.WriteLine(resultado);
    }
}

 

O operador ternário pode também ser utilizado ao invés da declaração if-else. O exemplo anterior pode ser reescrito utilizando declarações if-else como mostrado abaixo.

 

Exemplo:

 

using System; 

class ExemploOperadorTernario
{ 
    static void main() 
    { 
        int x = 20, y = 10;
        int resultado = 0;

        if (x > y)
            resultado = x;
        else if (x < y)
            resultado = y;
        Console.WriteLine(resultado);
    }
}

 

Operador ternário aninhado

 

É possível aninhar operadores ternários se incluirmos uma expressão condicional na segunda parte (após o ?) ou terceira parte (após o 🙂 do operador. Considere o exemplo abaixo.

 

Exemplo:

 

using System; 

class ExemploOperadorTernario
{ 
    static void main() 
    { 
        int x = 2, y = 10;

        string resultado = x > y ? "x é maior que y" : x < y ?
                                   "x é menor que y" : x == y ?
                                   "x é igual a y" : "Sem resultado";
        }
}

 

O operador ternário é associado a direita. A expressão a ? b : c ? d : e é avaliado como a ? b : (c ? d : e), e não como (a ? b : c) ? d : e.

 

Palavras finais

 

Alguns pontos a serem lembrados:

 

 

Meu e-book Como Aprender a Programar do Absoluto Zero está GRATUITO por tempo limitado!

Olha o link: 👉🏼 http://celsokitamura.com.br/como-aprender-a-programar

Bora aprender a programar!

 

Sair da versão mobile