Operações Lógicas

As operações lógicas são uma novidade para muitos, pois raramente são vistas na escola. Um operador lógico opera somente valores lógicos, ou seja, é necessário que o valor à esquerda e a direita do operador sejam valores lógicos (verdadeiro ou falso).

É muito comum usar expressões relacionais (que dão resultado lógico) e combiná-las usando operadores lógicos. Por exemplo:

Operações Resultado
5 > 3 e 2 < 1 falso
nao (8 < 4) verdadeiro
1 > 3 ou 1 <= 1 verdadeiro

Assim como as operações aritméticas, as operações lógicas também possuem prioridades. Veja a tabela abaixo:

Operador Prioridade
ou 1
e 2
nao 3

Ou seja, o nao tem maior prioridade que todos, e o ou tem a menor. Veja os exemplos a seguir:

Passo Exemplo 1 Exemplo 2
Passo 1 nao verdadeiro ou falso verdadeiro e falso ou verdadeiro
Passo 2 falso ou falso falso ou verdadeiro
Passo 3 falso verdadeiro

Nesta seção, serão abordados os seguintes tópicos:

E

Em algumas situações, necessitamos que alguma instrução só seja executada se outras condições forem verdadeiras. Por exemplo, se você quisesse testar se duas variáveis distintas têm valor igual a 2, como faria? Para isso podemos utilizar o operador lógico e.

Quando usamos o operador e o resultado de uma operação lógica será verdadeiro somente quando AMBOS os operandos forem verdadeiros. Ou seja, basta que um deles seja falso e a resposta será falsa. A tabela a seguir é conhecida como tabela verdade e ilustra o comportamento do operador e.

Operação 1 Operação 2 Operação 1 e Operação 2
Verdadeiro Verdadeiro Verdadeiro
Verdadeiro Falso Falso
Falso Verdadeiro Falso
Falso Falso Falso

Em geral, os operadores lógicos são utilizados em conjunto com as Estruturas de Controle.

Para melhor compreensão deste conceito, confira o exemplo abaixo.

programa
{
    funcao inicio()
    {
    	//Teste utilizando o operador lógico "e" onde a deve ser igual a 2 e b deve ser igual a 2 também
        inteiro a = 2, b = 2
        se(a == 2 e b == 2)
		{
        	escreva("Teste positivo")
        }

        //Neste caso c é igual a 2, entretanto d não é igual a 2, logo este teste não terá como resposta verdadeiro
        inteiro c = 2, d = 3
        se(c == 2 e d == 2)
		{
        	escreva("Teste positivo")
        }

        //Neste caso de teste g é igual a 2 e f é diferente de 3, logo este teste terá como resposta verdadeiro
        inteiro g = 2, f = 2
        se(g == 2 e f != 3)
		{
        	escreva("Teste positivo")
        }
    }
}

Não

Em algumas situações necessitamos verificar se o contrário de uma sentença é verdadeiro ou não. Por exemplo, se você tem uma variável com um valor falso, e quer fazer um teste que será positivo sempre que essa variável for falsa, como faria? Para isso podemos utilizar o operador lógico nao.

O operador nao funciona de forma diferente pois necessita apenas de um operando. Quando usamos o operador nao, o valor lógico do operando é invertido, ou seja, o valor falso torna-se verdadeiro e o verdadeiro torna-se falso.

Em geral, os operadores lógicos são utilizados em conjunto com as Estruturas de Controle.

Para melhor compreensão deste conceito, confira o exemplo abaixo.

programa
{
    funcao inicio()
    {
    	//Neste caso de teste a variável teste foi inicializada como falso, e foi verificado se teste não é verdadeiro
        logico teste = falso
        se(nao(teste))
		{
        	escreva("Teste positivo")
        }
        
        //Neste caso teste a soma das variáveis a e b resulta em 5, e comparado se a mesma é maior que 7, entretanto o operador nao, verifica se a+b não são maiores que 7
        inteiro a = 2, b = 3
        se(nao(a+b > 7))
		{
        	escreva("Teste positivo")
        }
    }
}

Ou

Em algumas situações, necessitamos que alguma instrução seja executada se uma entre várias condições forem verdadeiras. Por exemplo, se você quisesse testar se pelo menos uma entre duas variáveis distintas têm valor igual a 2, como faria? Para isso podemos utilizar o operador lógico ou.

Quando usamos o operador ou o resultado de uma operação lógica será verdadeiro sempre que UM dos operandos for verdadeiro. A tabela verdade a seguir ilustra o comportamento do operador ou.

Operação 1 Operação 2 Operação 1 ou Operação 2
Verdadeiro Verdadeiro Verdadeiro
Verdadeiro Falso Verdadeiro
Falso Verdadeiro Verdadeiro
Falso Falso Falso

Em geral, os operadores lógicos são utilizados em conjunto com as Estruturas de Controle.

Para melhor compreensão deste conceito, confira o exemplo abaixo.

programa
{
    funcao inicio()
    {
    	//Teste utilizando o operador lógico "ou" onde a deve ser igual a 2 ou pelo menos b deve ser igual a 2, qualquer um destes satisfaz o teste oferecendo-lhe verdadeiro como resposta
        inteiro a = 2, b = 2
        se(a == 2 ou b == 2)
		{
        	escreva("Teste positivo")
        }
        
        //Neste caso c é igual a 2, entretanto d não é igual a 2, mas qualquer uma das condições oferece ao teste como resposta: verdadeiro
        inteiro c = 2, d = 3
        se(c == 2 ou d == 2)
		{
        	escreva("Teste positivo")
        }
        
    }
}