Operador ternário

Como discutimos nas aulas anteriores, os programas de computador consistem essencialmente na verificação de condições e na tomada de decisões a partir da resposta VERDADEIRA ou FALSA.

Em algumas situações, o código escrito com if/else pode ficar um pouco longo. Um programa que verifica se um número é par ou ímpar, por exemplo, pode ter a seguinte sintaxe:

#include<stdio.h>

int main(void){
    int variavel = 10;
    if(variavel % 2 == 0){
        printf("Par\n");
    }
    else{
        printf("Ímpar\n");
    }
}

Observe que, apesar da simplicidade do código, ele ocupa seis linhas de código. Podemos reduzir drasticamente toda essa operação para apenas uma linha. Para isso, faremos uso do operador ternário, muito comum no desenvolvimento de software hoje em dia.

💡 Conceito

O conceito do operador ternário é bastante simples: ele consiste na verificação de uma condição, seguida pelo símbolo de interrogação (?). Em sequência, ainda na mesma linha, têm-se a ação a ser executada caso o resultado seja verdadeiro e as ação a ser executada caso o resultado seja falso. As ações são separadas por um :.

O padrão é o seguinte:

condicao ? acao_se_for_verdade : acao_se_for_falsa;

Saindo da abstração e aplicando no código anterior, teríamos a substituição do tradicional if/else pela seguinte linha:

variavel % 2 == 0 ? printf("Par\n") : printf("Ímpar\n");

Agora, com o programa completo, o resultado seria:

#include<stdio.h>

int main(void){
    int variavel = 10;
    variavel % 2 == 0 ? printf("Par\n") : printf("Ímpar\n");
}

🧠 Teste seus conhecimentos

Qual afirmação corretamente descreve o operador ternário em C?

  • A

    O operador ternário pode ser usado para repetir um bloco de código várias vezes, semelhante a um loop.

  • B

    O operador ternário substitui totalmente a necessidade de usar a estrutura condicional `if-else`.

  • C

    O operador ternário é uma estrutura condicional que executa uma de duas expressões com base em uma condição booleana.

  • D

    O operador ternário permite a execução de múltiplas condições e operações sequenciais em uma única expressão.

  • E

    O operador ternário é utilizado para executar uma expressão condicional que só retorna verdadeiro ou falso, sem outras ações.

☝️ Considerações importantes

O operador ternário em C é uma alternativa compacta para a estrutura condicional if-else. Aqui estão alguns pontos essenciais a considerar:

  1. Sintaxe Básica:
    • A sintaxe básica do operador ternário é condição ? expressão1 : expressão2. Se condição for verdadeira, expressão1 é avaliada; caso contrário, expressão2 é avaliada.
  2. Legibilidade:
    • Embora o operador ternário possa tornar o código mais conciso, o uso excessivo ou em expressões complexas pode afetar negativamente a legibilidade do código.
  3. Uso com Moderação:
    • Recomenda-se usar o operador ternário em situações simples e evitar seu uso em condições complexas ou aninhadas.
  4. Não Utiliza Chaves ({}):
    • Diferentemente do if-else, o operador ternário não utiliza chaves, então cada parte da expressão ternária deve ser uma única expressão ou declaração.
  5. Uso em Atribuições e Retornos:
    • O operador ternário é frequentemente usado para atribuições condicionais e retornos de funções para escolher entre dois valores.
  6. Limitação a Três Operadores:
    • Como o nome sugere, o operador ternário é limitado a três partes: uma condição, uma expressão para verdadeiro, e uma para falso. Não é possível estender diretamente para mais condições sem aninhamento.
  7. Aninhamento de Operadores Ternários:
    • Embora seja tecnicamente possível aninhar operadores ternários, isso deve ser feito com cautela para evitar complexidade e confusão no código.

📖 Bibliografia

Livros

  • Backes, A. (2018). Linguagem C - Completa e Descomplicada.