sábado, 20 de agosto de 2016

Operador ternário

O C possui um operador impressionante e que em algumas vêzes
pode-se tornar necessário para substituição dos comandos if-else
testando expressões, e mostrando o resultado das avaliações em printf();
O seu nome é "ternário" e o seu símbolo é ?, sua forma de uso é apresentado assim:
expressão1 ? expressão2 : expressão3;
É importante sempre observar o uso dos dois pontos para não haver erros de posicionamento.
Não há muito o que falar sobre ele, basicamente ele funciona testando
a primeira expressão, se ela for verdadeira, testamos a segunda e o que vem
dentro do corpo da segunda expressão passa ser o valor da expressão.
Se a primeira expressão for tida como falsa, o C já salta para terceira
expressão e o que está em seu corpo será o valor da expressão.
Para ilustrar na prática o que falei em cima mostro este claro exemplo
acompanhado de uma imagem do programa em execução, acompanhe:




 Veja abaixo o código do programa:

#include <stdio.h>
#include <conio.h>
void got_color ( int tam_lin_ini, int tam_lin_fim, int tam_ini_col,
         int tam_fim_col, int a, int b ) {
     int i, c;
     if ( a >= 1 && a <= 16 ) {
         textcolor ( a );
     }
     if ( b >= 1 && b <= 16 ) {
         textbackground ( b );
     }
     for ( i = tam_lin_ini; i < tam_lin_fim; i++ ) {
         for ( c = tam_ini_col; c < tam_fim_col; c++ ) {
              gotoxy ( c, i );
              printf ( " " );
         }
     }
}
int main ( ) {
     system ( "title OPERADOR TERNÁRIO" );
     got_color ( 2, 25, 3, 79, 9, 15 );
     int a = 7;
     int b;
     textcolor ( LIGHTRED );
     gotoxy ( 33, 3 );
     printf ( "OPERADOR TERNÁRIO" );
     textcolor ( LIGHTBLUE );
     gotoxy ( 23, 5 );
     printf ( "Avaliando a variável a que recebe " );
     textcolor ( LIGHTRED );
     printf ( "%d", a );
     b = ( a == 7 ) ? 23 : 56; //verdadeiro
     textcolor ( LIGHTBLUE );
     gotoxy ( 23, 7 );
     printf ( "b = ( a == 7 ) ? 23 : 56; //verdadeiro " );
     textcolor ( LIGHTRED );
     printf ( "%d", b );
     b = ( a <= 7 ) ? 23 : 56; //verdadeiro
     textcolor ( LIGHTBLUE );
     gotoxy ( 23, 9 );
     printf ( "b = ( a <= 7 ) ? 23 : 56; //verdadeiro " );
     textcolor ( LIGHTRED );
     printf ( "%d", b );
     b = ( a >= 7 ) ? 23 : 56; //verdadeiro
     textcolor ( LIGHTBLUE );
     gotoxy ( 23, 11 );
     printf ( "b = ( a >= 7 ) ? 23 : 56; //verdadeiro " );
     textcolor ( LIGHTRED );
     printf ( "%d", b );
     /////////////////////////////////////////////////////////////////
     b = ( a != 7 ) ? 23 : 56; //Falso
     textcolor ( LIGHTBLUE );
     gotoxy ( 23, 13 );
     printf ( "b = ( a != 7 ) ? 23 : 56; //falso " );
     textcolor ( LIGHTRED );
     printf ( "%d", b );
     b = ( a > 7 ) ? 23 : 56; //falso
     textcolor ( LIGHTBLUE );
     gotoxy ( 23, 15 );
     printf ( "b = ( a > 7 ) ? 23 : 56; //falso " );
     textcolor ( LIGHTRED );
     printf ( "%d", b );
     b = ( a < 7 ) ? 23 : 56; //falso
     textcolor ( LIGHTBLUE );
     gotoxy ( 23, 17 );
     printf ( "b = ( a < 7 ) ? 23 : 56; //falso " );
     textcolor ( LIGHTRED );
     printf ( "%d", b );
     Sleep ( 1800 );
     textcolor ( LIGHTBLUE );
     gotoxy ( 22, 19 );
     printf ( "Por: " );
     textcolor ( LIGHTMAGENTA );
     printf ( "Samuel Lima" );
     textcolor ( BLACK );
     gotoxy ( 22, 20 );
     printf ( "sa_sp10@hotmail.com" );
     Sleep ( 1800 );
     textcolor ( LIGHTRED );
     gotoxy ( 37, 23 );
     printf ( "MUITO OBRIGADO" );
     getche ( );
     return 0;

}

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.