Nesta aula estudaremos o Operador Ternário e aprenderemos como podemos escolher uma dentre 2 opções de forma menos verbosa, utilizando uma notação inline, isto é, uma notação onde toda a expressão será definida numa única linha. |
OPERADOR TERNÁRIO
O Operador Ternário verifica uma condição e retorna um dentre dois valores pré-definidos em sua estrutura. Esta é uma notação chamada inline para as vezes em que seja necessário avaliar expressões e decidir por um dentre 2 valores.
A principal razão da existência do Operador Ternário, é servir como uma atalho linguístico. Até porque, tudo que é feito com o Operador Ternário pode ser escrito utilizando a Tomada de Decisão, ou seja, a instrução if. Porém, com a instrução if, utilizamos 4 linhas de código pra escolher uma dentre 2 opções, enquanto que com o operador ternário, sendo o mesmo um operador inline, obtemos o mesmo resultado utilizando uma única linha.
SITUAÇÃO PRÁTICA
O Operador Ternário se justifica em situações onde, por exemplo, temos 10 condições a serem verificadas e é necessário em todas, escolher um valor dentre 2 opções. Se, trabalharmos com a instrução if, utilizaremos, no mínimo, 40 linhas de código. Porém, com a Operação Ternária, conseguimos o mesmo resultado, utilizando apenas 10 linhas.
É verdade que a instrução if pode ser trabalhada de maneira inline, ou seja, escrever toda a expressão numa única linha. Porém, ainda que seja funcional, a leitura é prejudicada e novamente, o Operador Ternário se justifica.
A seguir, temos um exemplo onde inicialmente escolhemos um valor dentre 2 opções com a instrução if e em seguida, vamos escrever a mesma expressão, porém, utilizando o Operador Ternário.
int num = (caractere=='a') ? 65 : 66;
<valor> = < x > ? (True) : (False)
Inicialmente, estamos declarando uma variável de nome num do tipo int e estamos adicionando a mesma o valor resultante da resolução da estrutura do Operador Ternário.
O sinal de interrogação deve ser lido como: "A expressão é verdadeira?", ou seja, como o sinal denota, de fato estamos questionando o resultado da expressão lógica. Se o Valor Lógico for True o número 65 será retornado, senão, ou seja, o sinal de dois pontos : está substituindo a instrução else. Logo, devemos ler "senão", retorna o segundo valor definido na estrutura da Operação Ternária.
Por fim, temos que ler a expressão da seguinte maneira: O Valor Lógico da expressão é verdadeiro? Se sim, retorna o primeiro valor : senão, retorna o segundo valor. A seguir, vamos temos dois códigos que estão realizando a mesma tarefa, porém, um está escrito com a instrução if, enquanto o segundo, com o Operador Ternário.
//utilizando o Operador Ternário
int num = (caractere=='a') ? 65 : 66;
//utilizando a instrução "if"
if (caractere=='a')
num = 65
else
num = 66;
Por fim, se você compreendeu o uso da Tomada de Decisão, ou seja, da instrução if, conseguirás assimilar rapidamente essa notação. Até porque, a lógica de funcionamento é a mesma, a diferença está no "esquema" de cada estrutura.
SITUAÇÃO PRÁTICA
Agora, vamos desenvolver 2 códigos que realizam a mesma tarefa, porém, utilizando estruturas diferentes. Inicialmente, vamos trabalhar com a instrução if e em seguida, escreveremos o mesmo programa, porém, utilizando o Operador Ternário.
O programa que faremos, definirá uma variável do tipo char e inicializará a mesma com o caractere 'A' (maiúsculo). Em seguida, utilizando a instrução if e o Operador Ternário, avaliaremos uma expressão e retornaremos um valor.
IMPLEMENTANDO COM A INSTRUÇÃO if
Vamos escrever um código onde é necessário verificar se o número que o usuário informou é menor do que 0. Caso o valor informado seja menor, iremos resetar o valor atribuindo zero para a variável, do contrário, não faremos nada.
Então, o nosso objetivo é definir 0 caso o valor seja menor do que 0.
Inicialmente, vamos desenvolver um código utilizando a estrutura de Tomada de Decisão if e em seguida, vamos alterar o nosso código utilizando o Operador Ternário.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num, num2;
printf("Informe um numero: ");
scanf("%d", &num);
if(num < 0)
num2 = 0;
else
num2 = num;
printf("O valor de num2 eh: %d \n\n", num2);
return 0;
}
IMPLEMENTANDO COM O OPERADOR TERNÁRIO
#include <stdio.h>
#include <stdlib.h>
int main (void )
{
int num;
printf("Informe um numero: ");
scanf("%d", &num);
int num2;
num2 = (num < 0) ? 0 : num;
//num >= 0 ? num++ : num--;
printf("O valor de num2 e: %d \n\n", num2);
return 0;
}
Tags curso, c, operador, operador ternário, condição, blog
Comentários
comments powered by Disqus