Operadores Lógicos Parte 4
Parte da seção Fundamentos do Journey de Ruby da Coddy — lição 20 de 88.
Quando você combina múltiplos operadores lógicos em uma única expressão, o Ruby os avalia em uma ordem específica baseada na precedência de operadores. Entender essa ordem ajuda você a escrever condições corretas e evitar resultados inesperados.
A precedência da maior para a menor é: ! (não), depois && (e) e, em seguida, || (ou). Isso significa que ! é avaliado primeiro, seguido por && e, finalmente, ||:
true || false && false # true (&& avalia primeiro)
# O mesmo que: true || (false && false)
!false && true # true (! avalia primeiro)
# O mesmo que: (!false) && trueVocê pode usar parênteses para substituir a precedência padrão e tornar suas intenções claras:
(true || false) && false # false (parênteses forçam || primeiro)
true || (false && false) # true (comportamento padrão)Mesmo quando os parênteses não são estritamente necessários, adicioná-los muitas vezes torna as expressões complexas mais fáceis de ler. Em caso de dúvida, use parênteses para mostrar explicitamente como as condições devem ser agrupadas.
Desafio
FácilVocê recebeu as seguintes variáveis:
x = true
y = false
z = true
a = falseAvalie as seguintes expressões e exiba cada resultado em uma linha separada. Preste atenção à precedência dos operadores: ! é avaliado primeiro, depois && e, por fim, ||.
x || y && z!y && zx && y || z!a || y && zx && !y && z(x || y) && ax || (y && a)!(x && y) || z
Cada saída deve ser true ou false.
Folha de consulta
O Ruby avalia operadores lógicos em uma ordem específica baseada na precedência de operadores:
!(not) - precedência mais alta&&(and) - precedência média||(or) - precedência mais baixa
Exemplos de precedência de operadores:
true || false && false # true (&& avalia primeiro)
# O mesmo que: true || (false && false)
!false && true # true (! avalia primeiro)
# O mesmo que: (!false) && trueUse parênteses para substituir a precedência padrão ou melhorar a legibilidade:
(true || false) && false # false (parênteses forçam || primeiro)
true || (false && false) # true (comportamento padrão)Experimente você mesmo
# As variáveis já estão definidas para você
x = true
y = false
z = true
a = false
# TODO: Avalie cada expressão e imprima o resultado em uma linha separada
# Lembre-se da precedência dos operadores: ! primeiro, depois &&, depois ||
# 1. x || y && z
puts # sua expressão aqui
# 2. !y && z
puts # sua expressão aqui
# 3. x && y || z
puts # sua expressão aqui
# 4. !a || y && z
puts # sua expressão aqui
# 5. x && !y && z
puts # sua expressão aqui
# 6. (x || y) && a
puts # sua expressão aqui
# 7. x || (y && a)
puts # sua expressão aqui
# 8. !(x && y) || z
puts # sua expressão aquiEsta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 3Operadores Lógicos Parte 47Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo Entrada do Usuário10FizzBuzz com um Toque Especial
Visão Geral do JogoO Método FizzBuzz2Variáveis e Tipos de Dados
Números e VariáveisTipo de Dado StringTipo de Dado BooleanTipo de Dado SymbolVerificando Tipos de DadosConvenções de NomenclaturaRecapitulação - Criação de Variáveis5Tomada de Decisão
Instrução IfIf - ElseRecapitulação - Calculadora SimplesIf - Else AninhadoInstrução Unless8Laços de Repetição
Loop For com IntervalosLoop WhileBreakNextRecapitulação - FatorialLoop TimesLoop UntilLoops AninhadosRecapitulação - Entrada Dinâmica3Operadores Parte 1
Operadores AritméticosOperador de MóduloAtalhos AritméticosRecapitulação - Matemática SimplesOperadores de Comparação6IO Básico
Saída com putsSaída com print e pSaída com VariáveisEntrada com getsMétodo chompConversão de TiposRecapitulação - Calculadora de IdadeRecapitulação - Verdadeiro ou Falso9Métodos
Definindo um MétodoParâmetros de MétodoValores de RetornoRecapitulação - Método SigmaRecapitulação - Método de ValidaçãoValores de Parâmetro Padrão15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa