Translated example codes to Portuguese (#31189)

The translation was made to make more sense for readers who do not speak English
This commit is contained in:
Ladson Gomes
2019-08-16 11:07:05 -03:00
committed by Tom
parent 579a4ba496
commit ce67e98940

View File

@ -1,80 +1,81 @@
--- ---
title: Ternary Operator title: Ternary Operator
localeTitle: Operador Ternário localeTitle: Operador Ternário
--- ---
## 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. 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** : Aqui está um exemplo simples de tomada de decisão usando **if** e **else** :
```c ```c
int a = 10, b = 20, c; int a = 10, b = 20, c;
if (a < b) { if (a < b) {
c = a; c = a;
} }
else { else {
c = b; c = b;
} }
printf("%d", c); 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** . 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 ### Sintaxe
`condition ? value_if_true : value_if_false` `condicao ? valor_se_verdadeiro : valor_se_falso`
A declaração é avaliada para statement\_1 se a condição for verdadeira e statement\_2 caso contrário. A condição é avaliada para declaracao\_1 se a condição for verdadeira e declaracao\_2 caso contrário.
Aqui está o exemplo acima reescrito para usar o operador ternário: Aqui está o exemplo acima reescrito para usar o operador ternário:
```c ```c
int a = 10, b = 20, c; int a = 10, b = 20, c;
c = (a < b) ? a : b; c = (a < b) ? a : b;
printf("%d", c); printf("%d", c);
``` ```
A saída do exemplo deve ser: A saída do exemplo deve ser:
```c ```c
10 10
``` ```
`c` é igual a `a` , porque a condição `a<b` era verdadeira. `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. Isso parece bem simples, certo? Observe que `valor_se_verdadeiro` e `valor_se_falso` 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: 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:
```c ```c
int a = 1, b = 2, ans; int a = 1, b = 2, resp;
if (a == 1) { if (a == 1) {
if (b == 2) { if (b == 2) {
ans = 3; resp = 3;
} else { } else {
ans = 5; resp = 5;
} }
} else { } else {
ans = 0; resp = 0;
} }
printf ("%d\n", ans); printf ("%d\n", resp);
``` ```
Aqui está o código acima reescrito usando o operador ternário aninhado: Aqui está o código acima reescrito usando o operador ternário aninhado:
```c ```c
int a = 1, b = 2, ans; int a = 1, b = 2, resp;
ans = (a == 1 ? (b == 2 ? 3 : 5) : 0); resp = (a == 1 ? (b == 2 ? 3 : 5) : 0);
printf ("%d\n", ans); printf ("%d\n", resp);
``` ```
A saída de ambos os códigos acima deve ser: A saída de ambos os códigos acima deve ser:
```c ```c
3 3
```