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

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

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
        
      



Próximas Aulas


Looping

Nesta aula iremos ver comandos como each, times, until, while, que são comandos utilizados para exec...

Hash

Nesta aula iremos aprender um objeto muito importante para programadores ruby. O Hash te ajuda a map...

Funções

Nesta aula iremos aprender como criar e estruturar uma função em ruby, veremos como retornar e passa...

Funções recursivas

Nesta aula iremos aprender um pouco mais sobre funções, iremos ver mais uma forma de utilizar a funç...

Orientação a objetos - instância e construtor

Nesta aula iremos aprender o como criar uma classe, uma instância e a utilização de construtores em ...

Orientação a Objetos - Accessors

Nesta aula iremos aprender como criar propriedades em uma classe ruby, iremos criar propriedades de ...

Orientação a Objetos - Herança

Nesta aula iremos aprender sobre herança, mais uma aula de orientação a objetos em Ruby, com a heran...

Orientação a Objetos - public, private, protected

Nesta aula iremos aprender as marcações public, private, protected e veremos as diferenças entre ela...



Danilo

Arquiteto de software, analista, programador, professor. Danilo criou o projeto torne-se um programador, para passar o seu conhecimento para a nova geração. Com o intuito de ser um bom pai, Danilo trabalha muito motivado para garantir o futuro de sua filha.

ELEVE SEUS GANHOS E POTENCIALIZE SUA PERFORMANCE

Receba nossa Ebook de LÓGICA DE PROGRAMAÇÃO

© Didox Business & Technology - CNPJ: 12.127.195/0001-14