Ciclos

Objetivos

  • Usar ciclos para hacer operaciones por cada elemento de un arreglo.
  • Usar puts para imprimir cadenas en la pantalla.

  • Aprender dos sintaxis diferentes para crear bloques en Ruby.

Paso 1

Type this in irb:
puts 'Hola Mundo'

puts (put string) es una manera de imprimir información para el usuario de tu programa.

Toma algo de tiempo para contemplar la salida de puts en irb:

Expected result:
1.9.3p125 :006 > puts 'Hola Mundo'
Hola Mundo
 => nil
1.9.3p125 :007 >

El método puts siempre tiene el valor de retorno nil, que es lo que ves después de => en la salida. Imprimir 'Hola Mundo' en la pantalla es solo un efecto secundario.

Paso 2

Type this in irb:
frutas = ['durazno', 'ciruela', 'pera']
frutas.each { |fruta| puts fruta }

La línea vertical | es llamada 'caracter pipe', y es típicamente una versión cambiada de la \ (diagonal invertida) en tu teclado.

Los ciclos son una manera de hacer algo varias veces. En este ciclo, imprimimos cada fruta en la pantalla.

Paso 3

Type this in irb:
numeros = [109, 10, 1001]
numeros.each { |n| puts n * 2 }

Las llaves aquí definen un bloque, y lo que sea que está entre los pipes es una variable de bloque.

each toma el primer elemento en el arreglo y lo envía al bloque, el cual temporalmente se guarda en la variable de bloque, luego ejecuta el código que se encuentra después de los pipes. Regresa y hace esto de nuevo por cada uno de los elementos.

Type this in irb:
patos = ['hugo', 'paco', 'luis']
patos.each { |pato| puts "¡#{pato} cuac!" }
patos.each { |zombie| puts "¡#{zombie} cuac!" }

No importa cómo llames a tu variable de bloque: las dos sentencias anteriores son exactamente equivalentes para Ruby. Sin embargo deberías asignar un nombre útil, ¡así el código tendrá sentido para ti después!

Paso 4

Type this in irb:
total = 256 ** 3
colores = ['rojo', 'azul', 'verde']
colores.each do |color|
  puts "#{total} colores de la pintura en la pared... "
  puts "Elige un #{color}, pásalo..."
  total = total - 1
  puts "¡#{total} colores de la pintura en la pared!"
end

El operador ** significa 'a la potencia de', como en '256 a la tercera potencia'

Hay más de una manera de crear un bloque en ruby. La sintaxis do ... end es comúnmente usada cuando un bloque necesita extenderse en varias líneas, mientras que la sintaxis { ... } es para un bloque de una sola línea.

Explicación

A medida que construyes programas complejos, querrás crear algo para muchas piezas de datos sin tener que escribirlo todo. Los ciclos ayudan a resolver este tipo de problemas.

Regresar a Hashes