Operador ternário em C explicado

Os programadores usam o operador ternário para a tomada de decisão no lugar de instruções condicionais if e else mais longas .

O operador ternário aceita três argumentos:

  1. O primeiro é um argumento de comparação
  2. O segundo é o resultado de uma comparação verdadeira
  3. O terceiro é o resultado de uma falsa comparação

Isso ajuda a pensar no operador ternário como uma forma abreviada ou como escrever uma instrução if-else. Aqui está um exemplo simples de tomada de decisão usando if e else :

int a = 10, b = 20, c; if (a < b) { c = a; } else { c = b; } printf("%d", c);

Este exemplo ocupa mais de 10 linhas, mas não é necessário. Você pode escrever o programa acima em apenas 3 linhas de código usando um operador ternário.

Sintaxe

condition ? value_if_true : value_if_false

A declaração avalia value_if_truese conditioné atendida e value_if_falsecaso contrário.

Aqui está o exemplo acima reescrito para usar o operador ternário:

int a = 10, b = 20, c; c = (a < b) ? a : b; printf("%d", c);

O resultado do exemplo acima deve ser:

10

cé definido como igual a a, porque a condição a < bera verdadeira.

Lembre-se de que os argumentos value_if_truee value_if_falsedevem ser do mesmo tipo e devem ser expressões simples em vez de declarações completas.

Operadores ternários podem ser aninhados como instruções if-else. Considere o seguinte código:

int a = 1, b = 2, ans; if (a == 1) { if (b == 2) { ans = 3; } else { ans = 5; } } else { ans = 0; } printf ("%d\n", ans);

Aqui está o código acima reescrito usando um operador ternário aninhado:

int a = 1, b = 2, ans; ans = (a == 1 ? (b == 2 ? 3 : 5) : 0); printf ("%d\n", ans);

A saída de ambos os conjuntos de código acima deve ser:

3