🤔 Para Refletir :
"O poder da criação está em suas mãos, escreva sua própria história e abra as portas para aventuras inesquecíveis."
- Versyoh

Javascript - Expressões Lógicas

DanTheLion Masculino

Conde
Administração
Administração
♫ in the jungle, the mighty jungle, the lion sleeps tonight ♫
Juntou-se
10 de Janeiro de 2016
Postagens
464
Soluções
1
Bravecoins
2.413
Sm8kRWZ.png



O que são Expressões Lógicas?

As expressões lógicas são um conjunto de código que realiza a análise de dois valores para determinar se o resultado dessa expressão é verdadeira (true) ou falsa (false).



Como são utilizadas as Expressões Lógicas?

Essas expressões podem ser utilizadas em diversas ocasiões. Os mais comuns são em conjunto com o comando if.

O comando if é utilizado para realizar essa comparação e determina se um certo conjunto de códigos precisa ser executado ou não através do resultado da expressão especificada.

A sintaxe do comando if é o seguinte:

Javascript:
if (expressao) {
    // o código aqui dentro será executado se a 'expressao' for verdadeira
}

A expressao especificada em if precisa ser verdadeira para que o comando dentro de seu escopo seja executado. Do contrário, ele será ignorado pelo programa e seguirá executando os códigos que vierem depois ele.

Javascript:
if (true) {
    console.log("Opa!")
}

console.log("Tudo bem?");

// Saída:
// "Opa!"
// "Tudo bem?"

No exemplo acima, a expressão é verdadeira, portanto, é executado o código do escopo do if.

Javascript:
if (false) {
    console.log("Opa!");
}

console.log("Tudo bem?");

// Saída: "Tudo bem?"

Agora, nesse exemplo, a expressão é falsa, resultando na não execução do código do escopo do if.

Existe a possibilidade de executar um certo código quando a expressão lógica do if é falsa e ignorar o código quando o resultado for verdadeiro. Veja o exemplo abaixo:

Javascript:
let solteiro = false;

if (solteiro) {
    console.log("Eu sou solteiro.");
} else {
    console.log("Eu não sou solteiro.");
}

// Saída: "Eu não sou solteiro."

Como pode ver, é utilizado uma palavra-chave else depois do escopo do comando if. Else significa "se não" ou "do contrário" e serve justamente para dizer ao computador:

"Se a expressão for verdadeira, executa esse código aqui, se não, executa esse outro código aqui."

O comando else sempre é utilizado em conjunto com o comando if.

Uma outra combinação entre as duas palavras-chave é a utilização de else if. Veja o exemplo abaixo:

Javascript:
let fruta = "banana";

if (fruta == "goiaba") {
    console.log("É goiaba");
} else if (fruta == "banana") {
    console.log("É banana");
} else if (fruta == "morango") {
    console.log("É morango");
} else {
    console.log("É outra fruta");
}

// Saída: "É banana"

Lembre-se que o uso de else e else if é opcional (não é obrigatório). Contudo, é preciso primeiro utilizar if antes deles.

As expressões lógicas podem ser utilizadas também em operações ternárias.

Mais informações:


Tipos de Operadores de Expressões Lógicas

Os tipos de operadores de expressões lógicas que serão apresentados nesse tópico são: de comparação, lógicos, aritméticos e de String.


• Operadores de Comparação


É IGUAL A

Quando se deseja saber se um valor é igual a outro, utiliza-se o operador de comparação == (duplo sinal de igual). Veja o exemplo abaixo:

Javascript:
let numeroJogo = 10;
let numeroSorteado = 15;

if (numeroJogo == numeroSorteado) {
    console.log("Você ganhou!");
} else {
    console.log("Você perdeu!");
}

// Saída: "Você perdeu!"

Aqui é comparado se o valor da variável numeroJogo é igual ao valor da variável numeroSorteado, isto é: Se 10 é igual a 15. Essa expressão resultou em falso. Por isso, o código executado é o do escopo do else.

Não só com números esse operador trabalha, dá para utilizar outros tipos de dado.

Javascript:
let possui_item_3 = true;

if (possui_item_3 == true) {
    console.log("Ele possui o item 3");
}

// Saída: "Ele possui o item 3"

Javascript:
let a1 = 20;
let a2 = 20;

if (a1 == a2) {
    console.log("É igual");
} else {
    console.log("Não é igual");
}

// Saída: "É igual"

Agora, observe a situação abaixo:

Javascript:
const num1 = 5;
const num2 = '5';

if (num1 == num2) {
    console.log("Tá certo!");
} else {
    console.log("Tá errado!");
}

// Saída: "Tá certo!"

A expressão do if do exemplo acima resultou em verdadeiro apesar de os dois valores serem de tipos de dado diferente (um número e um texto [string]). Isso acontece porque o operador de comparação == só compara o valor e ignora o tipo de dado.

Para que possamos verificar o tipo de dado em conjunto com o valor, veja a seguir o próximo operador de comparação.


É ESTRITAMENTE IGUAL A

Quando se deseja saber se um valor é igual a outro levando em conta também o seu tipo de dado, utiliza-se o operador de comparação === (triplo sinal de igual). Veja o exemplo abaixo:

Javascript:
var num1 = 250;
var num2 = "250";

if (num1 === num2) {
    console.log("Ok!");
} else {
    console.log("Tá errado isso ai...");
}

// Saída: "Tá errado isso ai..."

Como ambas as variáveis possuem o mesmo valor 250, eles possuem o tipo de dado diferente (número e texto/string). Por causa disso, o código do escopo do else foi executado.


É DIFERENTE DE

Semelhante ao operador de comparação É igual a, quando se deseja saber se um valor é diferente do outro, utiliza-se o operador de comparação != (ponto de exclamação e igual). Veja o exemplo abaixo:

Javascript:
let verdade = true;
let mentira = false;

if (verdade != mentira) {
    console.log("É verdade!");
} else {
    console.log("É mentira!");
}

// Saída: "É verdade!"

Na expressão do exemplo acima, true é diferente de false, tornando a expressão verdadeira.


É ESTRITAMENTE DIFERENTE DE

Semelhante aos operadores É diferente de e assim como É estritamente igual a, esse operador compara tanto os valores quanto os seus tipos de dado, caso ambos se assemelham, o resultado da expressão será verdadeira. É utilizado !== (ponto de exclamação e duplo sinal de igual) para realizar essa operação.

Javascript:
if (5 !== '5') {
    console.log("Acertou!");
} else {
    console.log("Errou!");
}

// Saída: "Acertou!"


MAIOR QUE e MAIOR OU IGUAL A

Quando se deseja saber se um valor é maior que outro, utiliza-se o operador > (maior que).

Javascript:
let num1 = 5;
let num2 = 3;

if (num1 > num2) {
    console.log(num1 + "é maior que" + num2);
} else {
    console.log(num1 + "não é maior que" + num2);
}

// Saída: "5 é maior que 3"

O resultado do exemplo acima é verdadeiro, já que a expressão lógica 5 > 3 é verdadeira.

Agora, quando se deseja saber se um número é maior ou igual a outro número, utiliza-se a operação >= (maior que e igual) entre esses números.

Javascript:
let num = 12;
let onum = 12;

if (num >= onum) {
    console.log("Igualados!");
}

// Saída: "Igualados!"


MENOR QUE e MENOR OU IGUAL A

Semelhante ao operador de maior que e maior ou igual, quando se deseja saber se um valor é menor que outro, utiliza-se o operador < (menor que).

Javascript:
let num1 = 5;
let num2 = 3;

if (num1 < num2) {
    console.log(num1 + "é menor que" + num2);
} else {
    console.log(num1 + "não é menor que" + num2);
}

// Saída: "5 não é menor que 3"

O resultado do exemplo acima é falso, já que a expressão lógica 5 < 3 é falsa.

E quando se deseja saber se um número é menor ou igual a outro número, utiliza-se a operação <= (menor que e igual) entre esses números.

Javascript:
let num = 21;
let onum = 25;

if (num <= onum) {
    console.log("É menor ou igual!");
} else {
    console.log("É maior!");
}

// Saída: "É menor ou igual!"


• Operadores Lógicos

Em conjunto com outros tipos de operadores, é possível realizar diversas comparações ao mesmo tempo interligando elas com os operadores lógicos. Veja a seguir os principais operadores que auxiliam na construção de uma expressão lógica.


AND

O operador AND compara dois valores ou conjuntos de expressões, para isso, utiliza-se && (duplo E comercial).

Javascript:
if(10 > 7 && 3 < 4) {
  console.log("Correto!");
} else {
  console.log("Peraí...");
};

// Saída: "Correto!"

O conjunto de expressão compara duas expressões diferentes. 10 > 7 que resulta em true e 3 < 4 que também resulta em true.
Quando temos uma expressão true && true, o resultado final do conjunto será verdadeira porque para que um conjunto de expressões ligadas pelo operador AND seja verdadeira, ambas as expressões devem ser verdadeiras. Será o suficiente para que a expressão final seja falsa se uma das expressões resultar em falso.

A seguir, você está vendo uma tabela verdade, onde realiza todas as comparações possíveis entre uma expressão A e uma expressão B. O "chapéu" ou o "acento circunflexo" entre as expressões significa AND, assim como vimos anteriormente.

A
B
A ^ B
V​
V​
V​
V​
F​
F​
F​
V​
F​
F​
F​
F​


OR

O operador OR, semelhantemente ao operador AND, compara dois valores ou conjuntos de expressões, para isso, utiliza-se || (dupla barra vertical). Porém, para que a expressão se satisfaça verdadeira, pelo menos uma das expressões precisa ser verdadeira, diferente do operador AND onde ambas as expressões precisam ser verdadeiras para que o resultado final seja verdadeira. Veja o exemplo:

Javascript:
if (true === true || false !== false) {
    console.log("Ok!");
} else {
    console.log("Não tá Ok!");
}

// Saída: "Ok!"

Na tabela verdade, o operador OR é conhecido pelo símbolo semelhante a letra V minúscula.

A
B
A v B
V​
V​
V​
V​
F​
V​
F​
V​
V​
F​
F​
F​


NOT

O operador NOT (Não ou inverso) inverte o valor lógico de uma variável, é possível fazer isso aplicando um ! antes da expressão lógica ou de uma variável. Se um valor é verdadeiro, invertê-lo tornará falso e vice-versa.

Javascript:
let solteiro = true;

console.log(!solteiro);

// Saída: false

Javascript:
if (!(5 > 3)) {
    console.log("Ok!");
} else {
    console.log("Peraí...");
}

// Saída: "Peraí..."

Nesse exemplo acima, foi utilizado parênteses () para que torne prioridade a operação da expressão que está entre elas para depois aplicar os operadores externos, ou seja, primeiro faça 5 > 3 = true, depois inverte o valor lógico do resultado: !true = false, por isso o código do escopo do else foi executado.

Na tabela verdade, o operador NOT é representado por um ¬ (ALT GR + 6) que significa negação.

A
¬ A
V​
F​
F​
V​



Há outros tipos de operadores que podem ser utilizados mas devido a complexidade para a explicação deles, deixarei uma fonte a seguir para que você possa olhar todo esse conteúdo completo:
 
Última edição:
Eu uso Jscript a algum tempo, faço um monte de códigos porcos, mas em questão de IFs eu sempre uso dois operadores, por exemplo, você mostrou assim:
Código:
If(laranjas = true || bananas = true) {
...

Já eu faria assim:
Código:
If(laranjas == true || bananas == true) {
...

Por que somente uma vez o sinal, significará OPERADOR, ou seja, ele alterará o valor da váriavel para um que vem em seguida.
Ou estou errado?

Vale lembrar que só uso JScript em navegadores, não uso o RpgMV apesar de ter comprado.
 
Crixus comentou:
Eu uso Jscript a algum tempo, faço um monte de códigos porcos, mas em questão de IFs eu sempre uso dois operadores, por exemplo, você mostrou assim:
Código:
If(laranjas = true || bananas = true) {
...

Já eu faria assim:
Código:
If(laranjas == true || bananas == true) {
...

Por que somente uma vez o sinal, significará OPERADOR, ou seja, ele alterará o valor da váriavel para um que vem em seguida.
Ou estou errado?

Vale lembrar que só uso JScript em navegadores, não uso o RpgMV apesar de ter comprado.

Sim, eu pensei a mesma coisa, então eu peço desculpas pelo meu erro. E obrigado por notar isso. Já arrumei o tópico. :Okay_fix:
 
Desculpas por que? Eu nem entendo muito, gosto de trocar ideias sobre de uso dos comandos.
Eu mesmo não usava ";" no final de cada comando nos primeiros dias, por que a quebra de linha resolvia isso, mas quando parei de usar o Bloco de notas do Windows percebi que teria futuros problemas.
 
Crixus comentou:
Desculpas por que? Eu nem entendo muito, gosto de trocar ideias sobre de uso dos comandos.
Eu mesmo não usava ";" no final de cada comando nos primeiros dias, por que a quebra de linha resolvia isso, mas quando parei de usar o Bloco de notas do Windows percebi que teria futuros problemas.

Ah sim, é claro, é ótimo trocar umas ideias. Tem algumas coisas que eu posso errar, mas que pela lógica eu já sabia, por isso eu sempre tento arrumar meus erros e deixar as coisas de forma bem economizada e explicada possível.
 
Tutorial atualizado. Adicionado tabelas verdade como exemplos e códigos formatados visualmente.
 
Tópico sobre Expressões Lógicas atualizado e reestruturado.

Antes "Operadores Lógicos", agora "Expressões Lógicas".

Muito texto foi refeito e foram adicionados algumas informações para o complemento do material.

~ Até mais! 🦁
 
Voltar
Topo Inferior