HomeSharpStack
cpp5 min

Introdução ao Operador Ternário e Expressões Condicionais

Introdução ao Operador Ternário e Expressões Condicionais

O operador ternário é uma forma concisa e elegante de escrever condições simples em C++. Em vez de usar um bloco if-else completo, você pode resolver a decisão em uma única linha. Isso torna seu código mais legível e compacto, especialmente quando você precisa atribuir um valor baseado em uma condição.

O que é o Operador Ternário?

O operador ternário tem a seguinte sintaxe:

condicao ? valor_se_verdadeiro : valor_se_falso;

Ele funciona assim: se a condicao for verdadeira, o resultado é valor_se_verdadeiro. Caso contrário, o resultado é valor_se_falso.

Comparando com if-else

Vamos ver como o operador ternário simplifica o código. Imagine que você quer determinar se um número é par ou ímpar:

// Usando if-else (mais linhas)
int numero = 7;
string resultado;
if (numero % 2 == 0) {
    resultado = "par";
} else {
    resultado = "ímpar";
}
cout << resultado;

Agora, a mesma lógica com o operador ternário:

// Usando operador ternário (uma linha)
int numero = 7;
string resultado = (numero % 2 == 0) ? "par" : "ímpar";
cout << resultado;

Muito mais simples! O resultado é o mesmo, mas com menos código.

Exemplos Práticos

Exemplo 1: Encontrar o maior de dois números

int a = 10;
int b = 20;
int maior = (a > b) ? a : b;
cout << "O maior é: " << maior; // Saída: O maior é: 20

Exemplo 2: Validar idade para dirigir

int idade = 16;
string pode_dirigir = (idade >= 18) ? "Sim, pode dirigir" : "Não, muito jovem";
cout << pode_dirigir; // Saída: Não, muito jovem

Exemplo 3: Atribuir desconto baseado em compra

double valor_compra = 150.0;
double desconto = (valor_compra > 100) ? valor_compra * 0.1 : 0;
cout << "Desconto: " << desconto; // Saída: Desconto: 15

Quando Usar o Operador Ternário

O operador ternário é perfeito para:

  • Atribuições simples: Quando você precisa atribuir um valor baseado em uma condição simples.
  • Expressões curtas: Quando a lógica é direta e fácil de entender.
  • Código mais limpo: Para evitar blocos if-else desnecessários.

Evite usar o operador ternário quando:

  • A lógica é complexa com múltiplas condições.
  • Você precisa executar várias linhas de código dentro de cada branch.
  • O código fica difícil de ler ou entender.

Operador Ternário Aninhado

Você pode aninhar operadores ternários, mas cuidado: isso pode deixar o código confuso. Veja um exemplo:

int nota = 75;
string conceito = (nota >= 90) ? "A" : (nota >= 80) ? "B" : (nota >= 70) ? "C" : "F";
cout << conceito; // Saída: C

Embora funcione, esse código é difícil de ler. Para casos assim, é melhor usar if-else tradicional.

Dica Importante

Sempre coloque parênteses ao redor da condição para deixar seu código mais claro:

// Bom
int resultado = (x > 5) ? 10 : 20;

// Evite
int resultado = x > 5 ? 10 : 20;

Os parênteses ajudam você e outros programadores a entender rapidamente qual é a condição.

Key Takeaways

  • O operador ternário é uma forma concisa de escrever condições simples em uma única linha, usando a sintaxe: condicao ? valor_verdadeiro : valor_falso
  • Use o operador ternário para atribuições simples e diretas, mas prefira if-else quando a lógica é complexa ou envolve múltiplas linhas de código
  • Sempre use parênteses ao redor da condição para melhorar a legibilidade do seu código

Enjoyed this reading?

SharpStack delivers personalized tech readings every day, calibrated to your skill level. 5 minutes a day to stay sharp.

“Stay sharp. At your pace. Everyday.”