Menu
Coddy logo textTech

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"
end

Isso é 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"
end

No 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.

challenge icon

Desafio

Fácil

Você é fornecido com as seguintes variáveis:

has_ticket = false
is_vip = true
items_in_cart = 0
battery_level = 15
is_charging = false

Use 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).

  1. A menos que has_ticket seja true, imprima Please purchase a ticket
  2. A menos que is_vip seja true, imprima VIP access required
  3. A menos que items_in_cart seja maior que 0, imprima Your cart is empty
  4. A menos que battery_level seja maior que 20, imprima Low battery warning
  5. A menos que is_charging seja true ou battery_level seja maior que 50, imprima Please 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"
end

Isso é 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"
end

No 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 apropriada
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos