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:
- O primeiro é um argumento de comparação
- O segundo é o resultado de uma comparação verdadeira
- 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_true
se condition
é atendida e value_if_false
caso 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 < b
era verdadeira.
Lembre-se de que os argumentos value_if_true
e value_if_false
devem 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