Operador Condicional - C#
Hoje vou falar um pouco sobre o operador ternário ou operador condicional. Esse tipo de operador basicamente faz a validação de uma operação booleana e retorna um resultado caso a operação tenha uma saída verdadeira e outro caso a operação tenha um resultado falso.
A estrutura básica do operador ternário traz uma condição, seguida de um ponto de interrogação (?) — que é a indicação do fim da condição, seguido de uma consequência caso a condição seja verdadeira, dois pontos (:) seguido da consequência alternativa para o caso de a condição ser falsa.
condicional ? consequencia (verdadeiro) : alternativa (falso)
Existe um exemplo comumente usado, que é o cálculo de gorjeta. Para esse caso, se o valor recebido for maior do que 100, a gorjeta vai ser o equivalente a 10% do valor, caso o valor seja menor ou igual a 100 o valor da gorjeta vai ser de 15%. Usando o operador ternário, obtém-se algo parecido com o que segue.
Tá mas o if já faz isso, não?
Sim, um if pode executar a mesma operação, com o mesmo resultado que o operador ternário, a diferença é a estrutura e complexidade do código.
Vamos fazer uma comparação com um exemplo bem simples, mas que deixa clara a funcionalidade do operador condicional.
Usando o operador temos esse código resultante:
Usando uma estrutura com if/else, o código resultante é este:
Para ambas as situações temos a soma de duas variáveis (a e b) com resultado atribuído à uma terceira variável (entrada). A variável booleana(condicional) recebe o valor “true” caso a entrada tenha o valor esperado (2) e recebe o valor “false” caso a entrada não tenha o valor esperado.
Beleza, se os dois códigos fazem a mesma coisa pra que usar o operador ternário?
Usando o operador ternário a validação e atribuição do resultado é feita em uma linha de código, de forma simples e direta. Usando if/else, o resultado final é o mesmo, mas requer uma estrutura mais complexa e mais sujeita a erro. O uso do operador ternário ou operador condicional pode facilitar para que o código gerado seja mais conciso, ou seja, um código reduzido ao essencial.