Menu
Coddy logo textTech

¿Qué es un bloque?

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

Ya has estado escribiendo bloques. Cada vez que escribiste each do |x| ... end, la parte entre do y end era un bloque: un fragmento de código pasado a un método.

[1, 2, 3].each do |n|
  puts n * 2
end

Aquí, each es un método del array, y do |n| ... end es el bloque. each ejecuta el bloque una vez por cada elemento, pasándolo como n.

Los bloques no son objetos separados que se guardan en variables, están vinculados directamente a la llamada del método. Un método recibe un bloque o no lo recibe, y la mayoría de los métodos de iteración (each, map, select, times) están diseñados para recibir uno.

3.times do |i|
  puts "hi #{i}"
end

Llamar a un método sin su bloque cambia lo que hace. [1,2,3].map sin bloque devuelve un enumerador en lugar de un array transformado, por lo que el bloque es parte de lo que el método significa.

challenge icon

Desafío

Principiante

Lee un entero n de la entrada. Usa el método times con un bloque para imprimir el mensaje Iteration <i> para cada valor de i desde 0 hasta n - 1.

Para la entrada 3, la salida es:

Iteration 0
Iteration 1
Iteration 2

Hoja de referencia

Un bloque es un fragmento de código pasado a un método entre do |param| ... end:

[1, 2, 3].each do |n|
  puts n * 2
end

Usa times para repetir un bloque n veces, con i yendo de 0 a n - 1:

3.times do |i|
  puts "hi #{i}"
end

Pruébalo tú mismo

n = gets.to_i

# TODO: usa n.times con un bloque para imprimir cada iteración
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