Um substituto para if, else em C.

A maioria dos programadores está acostumada com comandos de seleção/condição if() else, esses comandos definem um teste condicional o qual determina o curso da ação.
Embora esse comando seja muito usado devido a sua facilidade e utilidade, muitas vezes é preciso utilizar algo não tão trivial. Nessa dica vou usar o operador ” ? “, chamado de “operador ternário” pois requer três operando. Este pode ser usado para substituir os if-else na linguagem C.

Sua forma de funcionamento é:

Exp1 ? Exp2 : Exp3
Onde “Exp1” é expressão1, “Exp2” é expressão2 e assim por diante. O valor de uma expressão “?” é determinada como segue: “Exp1 é avaliada”;

a) se for verdadeira, Exp2 será avaliada e se tornará expressão “?” inteira.
b) se for falsa, então Exp3 é verdadeira e se torna valor da expressão “?” .

Sem mais delongas um breve algoritmo para comparações entre 3 valores:

/*********************************
Autor: Fernando Krein Pinheiro
Data: 22/08/2010
Linguagem: C
========= IMPORTANTE ===========
O código esta livre para usar,
citar e compartilhar desde que
mantida sua fonte e seu autor.
Obrigado.
*********************************/
#include <stdio.h>

int maior (int a, int b, int c) {
int nmaior = a;

nmaior = b>maior ? nmaior : b ;
nmaior = c>nmaior? c : nmaior ;

}

int menor(int a, int b, int c)
{
int nmenor = a;
nmenor = b < nmenor ? b : nmenor;
nmenor = c < nmenor ? c : nmenor;
return nmenor;
}

int main(){
int a,b,c;
printf("Digite 3 valores inteiros");
scanf("%d %d %d",&a,&b,&c);

printf("O maior numero e: %d\n",maior(a,b,c));
printf("O menor numero e: %d\n",menor(a,b,c));
return 0;
}

O algoritmo é simples de entender.
São três funções: uma é a main(), a outra para achar o menor valor e outra para achar o maior valor . O operador ” ? ” pode ser considerado como um IF.

Ex: nmenor = b < nmenor ? b : nmenor;
a) “nmenor” vai receber b se a comparação b < nmenor for verdade
b) caso contrário receberá “nmenor” e assim por diante…

Embora a dica seja simples e voltada aos iniciantes na linguagem C, sempre é útil conhecer uma forma diferente de representar e modificar ações em nossos programas.

Anúncios
por ferpinheiro Postado em C/C++

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s