Menu
Coddy logo textTech

O que é um Bloco?

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

Você já vem escrevendo blocos. Toda vez que você escreveu each do |x| ... end, a parte entre do e end era um bloco: um pedaço de código passado para um método.

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

Aqui, each é um método no array, e do |n| ... end é o bloco. each executa o bloco uma vez para cada elemento, passando-o como n.

Blocos não são objetos separados que você armazena em variáveis, eles estão vinculados diretamente à chamada do método. Um método recebe um bloco ou não, e a maioria dos métodos de iteração (each, map, select, times) são projetados para receber um.

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

Chamar um método sem o seu bloco altera o que ele faz. [1,2,3].map sem nenhum bloco retorna um enumerador em vez de um array transformado, então o bloco faz parte do que o método significa.

challenge icon

Desafio

Iniciante

Leia um número inteiro n da entrada. Use o método times com um bloco para imprimir a mensagem Iteration <i> para cada valor de i de 0 até n - 1.

Para a entrada 3, a saída é:

Iteration 0
Iteration 1
Iteration 2

Folha de consulta

Um bloco é um pedaço de código passado para um método entre do |param| ... end:

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

Use times para repetir um bloco n vezes, com i indo de 0 a n - 1:

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

Experimente você mesmo

n = gets.to_i

# TODO: use n.times com um bloco para imprimir cada iteração
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