Compartilhar via


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 OR

    E-expressão lógica & & expressão inclusive OR

  • expressão lógica OR:
    E-expressão lógica

    expressã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.

Consulte também

Referência

Operador lógico and: & &

Lógica ou operador: | |