[C] Operador ? e : em Linguagem C

Tenho acompanhado em vários fóruns e vejo que ainda muita gente não conhece a utilidade dos operadores ? e :, portanto irei explicar nesse artigo.

Esse operador ternário, ou seja, distribuído em grupos de três serve para simplificar a codificação onde se faz necessário a utilização de if-else, por exemplo:
Segue o código:

if(value>10)
{
   value+=5;
}
else
{
   value+=20;
}

Podemos utilizar dessa forma com esse operador:
O operador tem a seguinte sintaxe:

[Condição de Analise]?[Caso Verdadeiro]:[Caso Falso], ou seja, o sinal de interrogação [?] seria a condição if e os dois pontos [:] seria o else.

value+=(value>10)?5:20;

Com isso temos o mesmo resultado, somente que com muito menos linhas e código e um visual mais “clean”.
Isso pode ser utilizado em várias situações.

Esses operadores podem ser aninhados da seguinte forma:

value+=(value>10)?(value==20?2:6):(value!=3?1:2);

Analisando o código a principio é bem complicado, porem é só ter um pouco de atenção que ele se torna legível.

Supondo que o valor da variável value seja 18, teremos a situação de caso verdadeiro na primeira comparação (value>10), sendo assim que cairemos na próxima verificação (value==20), como nesse caso a resposta é falsa, será somado a variável value o valor de 6 resultando em 24.

Eu, particularmente, recomendo a utilização do parenteses para a separação dos operadores para facilitar a leitura do código.

Caso tenha alguma duvida, deixe seu comentário Espero ter ajudado a esclarecer como funciona esse operador e caso tenha alguma duvida em outros operadores deixe nos comentários para que eu possa escrever outros artigos.


Obrigado e até o próximo post.

DATEK Tecnologia Eletrônica
[C] Operador ? e : em Linguagem C
Tags:                     

Deixe uma resposta

%d blogueiros gostam disto: