freeCodeCamp/guide/portuguese/c/ternary-operator/index.md

2.0 KiB

title localeTitle
Ternary Operator Operador Ternário

Operador Ternário

Os programadores usam operadores ternários em C para tomar decisões em lugar de declarações condicionais, se e mais . O operador ternário é um operador que leva três argumentos. O primeiro argumento é um argumento de comparação, o segundo é o resultado em uma comparação verdadeira e o terceiro é o resultado em uma comparação falsa. Se isso ajudar você pode pensar no operador como uma forma abreviada de 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 leva mais de 10 linhas, mas isso não é necessário. Você pode escrever o programa acima em apenas 3 linhas de código usando o operador ternário .

Sintaxe

condition ? value_if_true : value_if_false

A declaração é avaliada para statement_1 se a condição for verdadeira e statement_2 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); 

A saída do exemplo deve ser:

10 

c é igual a a , porque a condição a<b era verdadeira.

Isso parece bem simples, certo? Observe que value_if_true e value_if_false devem ter o mesmo tipo e não podem ser instruções completas, mas simplesmente expressões.

O operador ternário também pode ser aninhado da mesma forma que as instruções if-else aninhadas. Considere esta declaração if-else aninhada:

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 o 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 códigos acima deve ser:

3