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:
- Operador ternário: Expressão booleana ? primeira declaração : segunda declaração;
- Operador ternário retorna um valor, ele não o executa.
- Pode ser utilizado para substituir uma declaração if-else curta.
- É permitido aninhar operadores ternários. Eles são avaliados da direita para esquerda.
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!