Menu
Coddy logo textTech

if / unless en línea

Parte de la sección Lógica y flujo del Journey de Ruby de Coddy — lección 41 de 56.

Ruby te permite poner if y unless al final de una sola sentencia, como un modificador de una sola línea. Se lee casi como inglés.

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

Esto es lo mismo que:

if age >= 18
  puts "Adult"
end

unless saved
  puts "Save your work"
end

La forma en línea destaca para comprobaciones de tipo guarda al principio de un método, o para actualizaciones condicionales puntuales dentro de un bucle:

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

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

Al igual que el ternario, utiliza modificadores en línea para sentencias cortas. Si el cuerpo tuviera más de una sola línea, escribe un bloque if real en su lugar.

challenge icon

Desafío

Fácil

Lee una lista de enteros separados por comas. Para cada número, imprime una línea, pero solo cuando el número sea distinto de cero:

  • Imprime positive: <n> if n > 0
  • Imprime negative: <n> unless n >= 0

Ambas líneas deben usar la forma de modificador en línea (sin bloque if, sin else). Después del bucle, imprime Skipped zeros: <count>, donde el conteo es el número de ceros, también calculado sin un bloque if (usa count).

Para la entrada 3,-2,0,5,0, la salida es:

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

Pruébalo tú mismo

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

# TODO: imprimir usando `if` / `unless` en línea para cada número
# TODO: imprimir Ceros omitidos: <n> usando count
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo