Nesta aula você ira aprender os operadores lógicos básicos do Ruby, irá ver onde aplicar e como utilizar.
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
=~
!~
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
=
, 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 ( |
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 |
|
Atribuição |
Não* |
|
Testa definição de um símbolo |
Não |
|
"Não" lógico |
Não |
|
"E", "Ou" lógicos |
Não |
|
Modificadores |
Não |
|
Expressão em bloco |
Não |
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
Nesta aula iremos aprender o como criar uma classe, uma instância e a ...
Nesta aula iremos aprender como criar propriedades em uma classe ruby,...
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.