Convertendo AND para OR em JavaScript
Tags: programming, javascript, computerscience, algorithms
Published: 2021-12-14 16:26:21

### Tabela Verdade
- Primeiramente é bom dá uma revisada nos conceitos de tabela verdade, para entender como valores de entrada e booleanos funcionam.

- A Tabela verdade nada mais é que um mecanismo de lógica que para determinada entrada ou valor e é calculado sua saída de acordo com predeterminações lógicas, funcionais e booleanas

![Tabela Verdade](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yym18z269wupq9q7nbyo.png)

### AND e OR
- Recentemente me deparei com uma falta de conhecimento em relação a booleanos eu não sabia como converter um **&&(AND)** para **||(OR)** na linguagem que estava utilizando (JavaScript), teria que fazer uma validação convertendo AND para OR por isso o foco nesses dois operadores lógicos nesse post.

- Operadores lógicos são nada a menos que funções e expressões matemáticas, sim aquelas que você estudou provavelmente na escola.

![Tabela Verdade](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a17pmq6jeleruwpat0b7.png)

- **O Operador lógico AND** também chamado de **Conjunção lógica**, ele é utilizado para dados dois inputs de valores
onde produz um valor verdadeiro se *ambos os operandos forem verdadeiros*. Em lógica de programação existem dois valores em bits que representam verdadeiro ou falso que são: 1 e 0

![Tabela AND](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hbiiqapo8ikx8e77no7x.png)

- **Operador lógico OR** também chamado de **Disjunção lógica**, dado dois inputs com valores ele produz um valor verdadeiro *se pelo menos um de seus operandos for verdadeiro*.

![Tabela OR](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1m1uhugunlvmrgaxluk7.png)

## Operador Lógico XOR
- O operador lógico XOR ele representa a função de desigualdade ou seja se ambas as entradas forem verdadeiras ou falsas a saída será falsa (0) se ambas entradas se distinguirem ele retornará verdadeiro. Uma frase legal para lembrar a lógica do XOR é : 
*"deve ter um ou outro, mas não ambos"*

- A apresentação analítica desse operador lógico se dar pela expressão:
```
f(a,b)=a+b-2ab
```
![Tabela XOR](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mdr6h1tutqm8u4r84duy.png)

- Uma curiosidade interessante que você deve ainda não ter percebido é que o operador lógico XOR é a conversão dos operadores AND e OR, e assim quando você tiver uma lógica AND e quiser transformá-la em uma lógica OR usará o XOR.

![Tabela XOR Gate](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hi1ydfqbl9vnnrdb4y8p.png) 
 
### Operador lógico XOR em JavaScript
- Depois de um breve resumo sobre operadores lógicos e tabela verdade agora podemos voltar a resolução do problema que desencadeou esse post.
- Assim como na tabela verdade também existem nas linguagens de programação operadores lógicos, e como seria o operador XOR em JavaScript?

Simples, já que não temos um símbolo de fato desse operador podemos representá-lo com a conversão dos operadores AND para OR que ficaria desde modo:
```
bCondition1 && bCondition2
```
para
```
!(!bCondition1 || !bCondition2)
```
Espero que esse post tenha lhe ajudado ou agregado em algo \o/

Para feedbacks sobre fale comigo pelo [Twitter](https://twitter.com/biantris_)
Se quiser continuar apoiando meus conteúdos [Patreon] (https://www.patreon.com/beatrizoliveira)
Meu GitHub https://github.com/biantris

> Versão em en 🇺🇸: https://dev.to/beatrizoliveira/converting-and-to-or-in-javascript-30jc

------