Menu
Coddy logo textTech

if / unless inline

Parte da seção Lógica e Fluxo do Journey de Ruby da Coddy — lição 41 de 56.

O Ruby permite que você coloque if e unless no final de uma única instrução, como um modificador de linha única. Lê-se quase como inglês.

puts "Adult" if age >= 18
puts "Save your work" unless saved

Isso é o mesmo que:

if age >= 18
  puts "Adult"
end

unless saved
  puts "Save your work"
end

A forma inline se destaca para verificações do tipo guard-style no topo de um método, ou para atualizações condicionais pontuais dentro de um loop:

return if name.nil? || name.empty?

counts = Hash.new(0)
words.each do |w|
  counts[w] += 1 unless w.start_with?("#")
end

Como o ternário, use modificadores inline para instruções curtas. Se o corpo tiver mais de uma linha, escreva um bloco if real em vez disso.

challenge icon

Desafio

Fácil

Leia uma lista de inteiros separados por vírgula. Para cada número, imprima uma linha, mas apenas quando o número for diferente de zero:

  • Imprima positive: <n> se n > 0
  • Imprima negative: <n> a menos que n >= 0

Ambas as linhas devem usar a forma de modificador inline (sem bloco if, sem else). Após o loop, imprima Skipped zeros: <count>, onde a contagem é o número de zeros, também calculada sem um bloco if (use count).

Para a entrada 3,-2,0,5,0, a saída é:

positive: 3
negative: -2
positive: 5
Skipped zeros: 2

Folha de consulta

O Ruby permite if e unless como modificadores inline ao final de uma única instrução:

puts "Adult" if age >= 18
puts "Save your work" unless saved

Útil para cláusulas de guarda ou atualizações condicionais simples:

return if name.nil? || name.empty?

counts[w] += 1 unless w.start_with?("#")

Use modificadores inline apenas para corpos de uma única linha; use um bloco if completo para qualquer coisa mais longa.

Experimente você mesmo

numbers = gets.chomp.split(",").map(&:to_i)

# TODO: imprimir usando `if` / `unless` inline para cada número
# TODO: imprimir Zeros pulados: <n> usando count
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 Lógica e Fluxo