C operadores lógicos
Os operadores lógicos executam lógica- E (& &) e a lógica OR ( || ) operações.
Sintaxe
E-expressão lógica:
expressão inclusive ORE-expressão lógica & & expressão inclusive OR
expressão lógica OR:
E-expressão lógicaexpressão lógica OR |- E-expressão lógica
Operadores lógicos não executam conversões aritméticas usuais.Em vez disso, eles avaliam cada operando em termos de sua equivalência como 0.O resultado de uma operação lógica é 0 ou 1.O tipo do resultado é int.
Os operadores lógicos c estão descritos abaixo:
Operador |
Descrição |
---|---|
& & |
A lógica- E operador produz o valor 1 se ambos os operandos tem valores diferentes de zero.Se qualquer operador for igual a 0, o resultado é 0.Se o primeiro operando de uma lógica- E a operação é igual a 0, o segundo operando não será avaliado. |
|| |
O operador lógico OR realiza uma operação de inclusive OR em operandos.O resultado será 0 se ambos os operandos tiverem valores 0.Se qualquer operador tiver um valor diferente de zero, o resultado é 1.Se o primeiro operando de uma operação lógica OR tiver um valor diferente de zero, o segundo operando não será avaliado. |
Os operandos lógicas- E e lógica OR expressões são avaliadas da esquerda para a direita.Se o valor do primeiro operando for suficiente para determinar o resultado da operação, o segundo operando não será avaliado.Isso é chamado de "avaliação de circuito curto." Há um ponto de seqüência após o primeiro operando.Consulte Pontos de seqüência para obter mais informações.
Exemplos
Os exemplos a seguir ilustram os operadores lógicos:
int w, x, y, z;
if ( x < y && y < z )
printf( "x is less than z\n" );
Neste exemplo, o printf função é chamada para imprimir uma mensagem se x é menor que y e y é menor que z.Se x é maior do que y, o segundo operando (y < z) não será avaliada e nada é impresso.Observe que isso poderia causar problemas nos casos em que o segundo operando tem efeitos colaterais que estão sendo dependia por algum outro motivo.
printf( "%d" , (x == w || x == y || x == z) );
Neste exemplo, se x é igual a um w, y, ou z, o segundo argumento para o printf função é avaliada como true e o valor 1 é impresso.Caso contrário, ele é avaliado como false e o valor 0 é impresso.Assim que uma das condições for avaliada como true, a avaliação é interrompido.