Operadores lógicos

Nesta aula você ira aprender os operadores lógicos básicos do Ruby, irá ver onde aplicar e como utilizar.

assinaturaAssine nossa Comunidade

Operadores Lógicos

As opereções lógicas também conhecidas como opereções booleanas, são proposições que podem ser apenas verdadeiras ou falsas apenas, ou seja, na comparação 2 + 2 = 4, pode ler como uma pergunta, dois mais dois é igual a quatro? Nesse caso sim, então a proposição é verdadeira, caso contrario seria falsa.

O exemplo acima é um exemplo básico de lógica, na programação você irá utilizar comparações no blocos condicinais principalmente, if else, switch etc, em laços(loop) for, while, mas não se restringindo a isso.

Operadores básicos do Ruby

  • ==
  • >
  • <
  • <=>
  • <=
  • =>
  • !=
  • !
  • NOT
  • AND
  • =~
  • !~
Valor lógico de negação ou operador de negação

Um operador de negação vai inverter o valor lógico de qualquer proposição, numa verdadeira ela vira falsa, numa falsa ela vira verdadeira. Por exemplo: !true retorna false

Basicamente um !true está dizendo que não é verdade.

Agora um !!true está dizendo que o valor (não verdade) é falso, ou seja ele é verdade, a negação da negação é verdade, seja qual for o caso ele retorna o valor lógico original.

O operador =~ é um pattern-matching em Ruby, ele ira buscar com REGEX se o padrão existe na string

Importante não confundir o sinal de atribuição =, com o de comparação de igualdadecode ==. Abaixo você confere uma tabela geral com operadores disponíveis.

Dentro da lógica além do comparador de igualdade, utilizamos conectivos exemplo: &&, || , ou and, or, eles validam se algo existe nos dois lados da proposição ou pelo menos em um lado, respectivamente função do E e OU.

Por exemplo:

         
          2 + 2 = 4 && 1 + 1 = 2 # true 
          2 + 2 = 4 || 1 + 1 = 2 # true 
          2 + 2 = 5 && 1 + 1 = 2 # false 
          2 + 2 = 5 || 1 + 1 = 2 # true 
          2 + 2 = 5 && 1 + 1 = 3 # false 
          2 + 2 = 5 || 1 + 1 = 3 # false 
        
      

Como pode ver ele valida o resultado da comparação de dois valores lógicos e retorna um outro valor lógico como resultado.

Exemplo com o valor lógico do exemplo anterior:

       
        true && true # true 
        true || true # true 
        false && true # false 
        false || true # true 
        false && false # false 
        false || false # false 
      
    

Operadores disponíveis:

Operador

Função

É método? (redefinível)

::

Escopo

Não

[]

Referência (Array)

Sim

**

Expoenciação

Sim

-, +, !, ~

-, +, Neg., Compl. (unários)

Sim

*, /, %

Mult., Div., Mód.

Sim

+, -

Adic., Subtr.

Sim

<<, >>

Deslocamento

Sim

&

binário

Sim

|, ^

Ou exclusivo"

Sim

>, >=, <, <=

Comparação

Sim

<=>, ==, ===, !=, ~=, !~

Igualdade

Sim*

&&

lógico

Não

||

lógico

Não

.., ...

incl. e excl.

Não

?:

if-then-else

Não

=, +=, -=, etc.

Atribuição

Não*

defined?

Testa definição de um símbolo

Não

Not

"Não" lógico

Não

and, or

"E", "Ou" lógicos

Não

if, unless,  while, until

Modificadores

Não

begin, end

Expressão em bloco

Não

Aula Prática

Como de praxe copie o arquivo padrão das aulas anteriores para seguir.

        
          require 'byebug'

          debugger

          a = 1
          b = 2
          c = 4

          if 1==1 or 2==2
            puts "entrou no if"
          end
          
          unless b==1 && a==3
            puts "mostrou unless 1"
          end

          unless b==1 and a==3
            puts "mostrou unless 2"
          end

          while( a<=b || b>c )
            puts "olá"
            a += 1
          end

        
      

Comparação de igualdade com expressão

        
          require 'byebug'

          debugger

          puts 24eql?(12*2)

        
      

Comparação se é igual retorna 0

        
          require 'byebug'

          debugger

          puts 12 <=> 12
          # 0
        
      

Comparação se é maior retorna -1

        
          require 'byebug'

          debugger

          puts 12 <=> 13
          # -1

        
      

Comparação se é menor retorna 1

        
          require 'byebug'

          debugger

          puts 12 <=> 4
          # 1
        
      

Operadores lógicos

Nesta aula você ira aprender os operadores lógicos básicos do Ruby, irá ver onde aplicar e como utilizar.

Próximas Aulas:
assinaturaAssine nossa Comunidade

Operadores Lógicos

As opereções lógicas também conhecidas como opereções booleanas, são proposições que podem ser apenas verdadeiras ou falsas apenas, ou seja, na comparação 2 + 2 = 4, pode ler como uma pergunta, dois mais dois é igual a quatro? Nesse caso sim, então a proposição é verdadeira, caso contrario seria falsa.

O exemplo acima é um exemplo básico de lógica, na programação você irá utilizar comparações no blocos condicinais principalmente, if else, switch etc, em laços(loop) for, while, mas não se restringindo a isso.

Operadores básicos do Ruby

  • ==
  • >
  • <
  • <=>
  • <=
  • =>
  • !=
  • !
  • NOT
  • AND
  • =~
  • !~
Valor lógico de negação ou operador de negação

Um operador de negação vai inverter o valor lógico de qualquer proposição, numa verdadeira ela vira falsa, numa falsa ela vira verdadeira. Por exemplo: !true retorna false

Basicamente um !true está dizendo que não é verdade.

Agora um !!true está dizendo que o valor (não verdade) é falso, ou seja ele é verdade, a negação da negação é verdade, seja qual for o caso ele retorna o valor lógico original.

O operador =~ é um pattern-matching em Ruby, ele ira buscar com REGEX se o padrão existe na string

Importante não confundir o sinal de atribuição =, com o de comparação de igualdadecode ==. Abaixo você confere uma tabela geral com operadores disponíveis.

Dentro da lógica além do comparador de igualdade, utilizamos conectivos exemplo: &&, || , ou and, or, eles validam se algo existe nos dois lados da proposição ou pelo menos em um lado, respectivamente função do E e OU.

Por exemplo:

         
          2 + 2 = 4 && 1 + 1 = 2 # true 
          2 + 2 = 4 || 1 + 1 = 2 # true 
          2 + 2 = 5 && 1 + 1 = 2 # false 
          2 + 2 = 5 || 1 + 1 = 2 # true 
          2 + 2 = 5 && 1 + 1 = 3 # false 
          2 + 2 = 5 || 1 + 1 = 3 # false 
        
      

Como pode ver ele valida o resultado da comparação de dois valores lógicos e retorna um outro valor lógico como resultado.

Exemplo com o valor lógico do exemplo anterior:

       
        true && true # true 
        true || true # true 
        false && true # false 
        false || true # true 
        false && false # false 
        false || false # false 
      
    

Operadores disponíveis:

Operador

Função

É método? (redefinível)

::

Escopo

Não

[]

Referência (Array)

Sim

**

Expoenciação

Sim

-, +, !, ~

-, +, Neg., Compl. (unários)

Sim

*, /, %

Mult., Div., Mód.

Sim

+, -

Adic., Subtr.

Sim

<<, >>

Deslocamento

Sim

&

binário

Sim

|, ^

Ou exclusivo"

Sim

>, >=, <, <=

Comparação

Sim

<=>, ==, ===, !=, ~=, !~

Igualdade

Sim*

&&

lógico

Não

||

lógico

Não

.., ...

incl. e excl.

Não

?:

if-then-else

Não

=, +=, -=, etc.

Atribuição

Não*

defined?

Testa definição de um símbolo

Não

Not

"Não" lógico

Não

and, or

"E", "Ou" lógicos

Não

if, unless,  while, until

Modificadores

Não

begin, end

Expressão em bloco

Não

Aula Prática

Como de praxe copie o arquivo padrão das aulas anteriores para seguir.

        
          require 'byebug'

          debugger

          a = 1
          b = 2
          c = 4

          if 1==1 or 2==2
            puts "entrou no if"
          end
          
          unless b==1 && a==3
            puts "mostrou unless 1"
          end

          unless b==1 and a==3
            puts "mostrou unless 2"
          end

          while( a<=b || b>c )
            puts "olá"
            a += 1
          end

        
      

Comparação de igualdade com expressão

        
          require 'byebug'

          debugger

          puts 24eql?(12*2)

        
      

Comparação se é igual retorna 0

        
          require 'byebug'

          debugger

          puts 12 <=> 12
          # 0
        
      

Comparação se é maior retorna -1

        
          require 'byebug'

          debugger

          puts 12 <=> 13
          # -1

        
      

Comparação se é menor retorna 1

        
          require 'byebug'

          debugger

          puts 12 <=> 4
          # 1