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á tem escrito blocos. Cada vez que escreveu each do |x| ... end, a parte entre do e end era um bloco: um trecho de código passado para um método.

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

Aqui, each é um método do 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 diretamente vinculados à chamada do método. Um método recebe um bloco ou não recebe, e a maioria dos métodos de iteração (each, map, select, times) é projetada para receber um.

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

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

challenge icon

Desafio

Iniciante

Leia um 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

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

Pratique por conta própria: Compilador de Ruby online