Instrução Unless
Parte da seção Fundamentos do Journey de Ruby da Coddy — lição 25 de 88.
Ruby oferece uma maneira única de expressar condições quando você deseja executar código apenas se algo não for verdadeiro. A declaração unless é essencialmente o oposto de if.
Com if, o código executa quando a condição é verdadeira. Com unless, o código executa quando a condição é falsa:
logged_in = false
unless logged_in
puts "Please log in to continue"
endIsso é equivalente a escrever if !logged_in, mas unless muitas vezes lê de forma mais natural. Pense nisso como "faça isso a menos que aquela condição seja verdadeira."
Você também pode usar unless com else:
age = 20
unless age < 18
puts "Access granted"
else
puts "Access denied"
endNo entanto, quando você precisa de um bloco else, usar if geralmente é mais claro. A declaração unless se destaca quando você tem uma condição negativa simples sem um caminho alternativo. Escolha o que torna seu código mais fácil de ler de relance.
Desafio
FácilVocê é fornecido com as seguintes variáveis:
has_ticket = false
is_vip = true
items_in_cart = 0
battery_level = 15
is_charging = falseUse instruções unless para avaliar cada cenário abaixo. Imprima a mensagem especificada apenas quando a condição for falsa (que é quando unless executa seu bloco).
- A menos que
has_ticketsejatrue, imprimaPlease purchase a ticket - A menos que
is_vipsejatrue, imprimaVIP access required - A menos que
items_in_cartseja maior que0, imprimaYour cart is empty - A menos que
battery_levelseja maior que20, imprimaLow battery warning - A menos que
is_chargingsejatrueoubattery_levelseja maior que50, imprimaPlease charge your device
Cada mensagem deve aparecer em sua própria linha. Imprima apenas mensagens para condições que ativam o bloco unless.
Folha de consulta
A declaração unless executa código quando uma condição é falsa, tornando-a o oposto de if:
logged_in = false
unless logged_in
puts "Please log in to continue"
endIsso é equivalente a if !logged_in, mas muitas vezes lê de forma mais natural.
Você pode usar unless com else:
age = 20
unless age < 18
puts "Access granted"
else
puts "Access denied"
endNo entanto, unless é melhor usado para condições negativas simples sem um bloco else. Quando você precisa de um caminho alternativo, if geralmente é mais claro.
Experimente você mesmo
# As variáveis já estão definidas para você
has_ticket = false
is_vip = true
items_in_cart = 0
battery_level = 15
is_charging = false
# TODO: Escreva seu código abaixo
# Use instruções unless para verificar cada condição e imprimir a mensagem apropriadaEsta 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