Menu
Coddy logo textTech

L'itérateur Each

Fait partie de la section Fondamentaux du Journey Ruby de Coddy — leçon 65 sur 88.

Ruby offre une manière plus élégante de parcourir les tableaux qu'en utilisant les boucles for ou while. L'itérateur each est la méthode préférée en Ruby pour traiter chaque élément d'une collection.

Voici la syntaxe de base :

fruits = ["apple", "banana", "cherry"]

fruits.each do |fruit|
  puts fruit
end

Ceci affiche chaque fruit sur une ligne distincte. La variable entre les barres verticales (|fruit|) est appelée une variable de bloc. Elle contient temporairement chaque élément au fur et à mesure que l'itérateur parcourt le tableau.

Pour les blocs d'une seule ligne, vous pouvez utiliser des accolades au lieu de do...end :

numbers = [1, 2, 3]
numbers.each { |n| puts n * 2 }

La méthode each est puissante car vous pouvez effectuer n'importe quelle opération sur chaque élément. Voici un exemple qui calcule un total cumulé :

prices = [10, 25, 15]
total = 0

prices.each do |price|
  total += price
end

puts total  # Affiche : 50

Contrairement aux boucles for, la variable de bloc dans each reste confinée à l'intérieur du bloc, rendant votre code plus propre et moins sujet à des comportements inattendus.

challenge icon

Défi

Facile

Lisez une seule ligne d'entrée contenant des entiers séparés par des virgules (par exemple, 4,7,2,9,5).

Divisez l'entrée en un tableau d'entiers, puis utilisez l'itérateur each pour :

  1. Afficher chaque nombre multiplié par 3 sur sa propre ligne
  2. Calculer la somme de tous les nombres et l'afficher après la boucle

Utilisez une variable initialisée à 0 avant la boucle pour accumuler la somme au fur et à mesure que vous parcourez le tableau.

Par exemple, si l'entrée est 4,7,2,9,5, la sortie devrait être :

12
21
6
27
15
Sum: 27

Si l'entrée est 10,20,30, la sortie devrait être :

30
60
90
Sum: 60

Si l'entrée est 1,2,3,4, la sortie devrait être :

3
6
9
12
Sum: 10

Si l'entrée est 5, la sortie devrait être :

15
Sum: 5

Essayez vous-même

# Lire les entiers séparés par des virgules
input = gets.chomp

# Diviser l'entrée en un tableau d'entiers
numbers = input.split(",").map(&:to_i)

# Initialiser la variable sum
sum = 0

# À FAIRE : Écrivez votre code ci-dessous
# Utiliser l'itérateur each pour :
# 1. Afficher chaque nombre multiplié par 3
# 2. Ajouter chaque nombre à la variable sum

# Afficher la somme finale
puts "Sum: #{sum}"
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 Fondamentaux