Um tipo muito importante de expressão em C é a expressão condicional, cujo resultado é um valor que será interpretado como falso ou verdadeiro. Como a linguagem C não suporta diretamente o tipo de dado booleano, ela trabalha com representações inteiras para denotar estes valores -- o resultado de uma expressão condicional é um valor inteiro que será interpretado como falso quando o valor resultante da expressão é igual a 0, e como verdadeiro quando o valor resultante é diferente de 0.
Assim, qualquer expressão inteira pode ser interpretada como uma expressão condicional. A situação mais comum, entretanto, é ter uma expressão condicional comparando valores através dos operadores relacionais. Os operadores relacionais em C são:
> |
maior que |
>= |
maior que ou igual a |
< |
menor que |
<= |
menor que ou igual a |
== |
igual a |
!= |
diferente de |
==
, e não =
como em
Pascal! Esta é uma causa comum de erros para programadores que estão
acostumados com outras linguagens onde =
é um operador relacional.
Expressões condicionais elementares (comparando duas variáveis ou uma variável e uma constante) podem ser combinadas para formar expressões complexas através do uso de operadores booleanos. Estes operadores são
&& |
AND |
|| |
OR |
! |
NOT |
&&
(and) resulta verdadeiro quando as duas
expressões envolvidas sãão verdadeiras (ou diferente de 0). O operador
||
(or) resulta verdadeiro quando pelo menos uma das duas
expressões envolvidas é verdadeira. Além destes dois conectores binários,
há também o operador unário de negação, !
, que resulta falso quando
a expressão envolvida é verdadeira (diferente de 0) ou resulta verdadeiro
quando a expressão envolvida é falsa (igual a 0).
Expressões lógicas complexas, envolvendo diversos conectores, são avaliadas
da esquerda para a direita. Além disto, &&
tem precedência maior
que ||
, e ambos têm precedência menor que os operadores lógicos
relacionais e de igualdade. Entretanto, recomenda-se sempre a utilização
de parênteses em expressões para tornar claro quais operações são
desejadas. A exceção a esta regra ocorre quando um número excessivo de
parênteses pode dificultar ainda mais a compreensão da expressão; em tais
casos, o uso das regras de precedência da linguagem pode facilitar o
entedimento da expressão.