Menu
Coddy logo textTech

Qu'est-ce qu'un bloc ?

Fait partie de la section Logique et Flux du Journey Ruby de Coddy — leçon 15 sur 56.

Vous avez déjà écrit des blocs. Chaque fois que vous avez écrit each do |x| ... end, la partie entre do et end était un bloc : un morceau de code passé à une méthode.

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

Ici, each est une méthode sur le tableau, et do |n| ... end est le bloc. each exécute le bloc une fois pour chaque élément, en le passant comme n.

Les blocs ne sont pas des objets distincts que vous stockez dans des variables, ils sont directement liés à l'appel de la méthode. Une méthode reçoit un bloc ou n'en reçoit pas, et la plupart des méthodes d'itération (each, map, select, times) sont conçues pour en accepter un.

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

Appeler une méthode sans son bloc modifie son comportement. [1,2,3].map sans bloc renvoie un énumérateur au lieu d'un tableau transformé, le bloc fait donc partie de la signification de la méthode.

challenge icon

Défi

Débutant

Lisez un entier n depuis l'entrée. Utilisez la méthode times avec un bloc pour afficher le message Iteration <i> pour chaque valeur de i allant de 0 jusqu'à n - 1.

Pour l'entrée 3, la sortie est :

Iteration 0
Iteration 1
Iteration 2

Aide-mémoire

Un bloc est un morceau de code passé à une méthode entre do |param| ... end :

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

Utilisez times pour répéter un bloc n fois, avec i allant de 0 à n - 1 :

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

Essayez vous-même

n = gets.to_i

# À FAIRE : utiliser n.times avec un bloc pour afficher chaque itération
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et Flux