Menu
Coddy logo textTech

Iteratore each

Fa parte della sezione Fondamenti del percorso Ruby di Coddy. Lezione 65 di 88.

Ruby offre un modo più elegante per scorrere gli array rispetto all’uso dei cicli for o while. L’iteratore each è il modo preferito in Ruby per elaborare ogni elemento di una raccolta.

Ecco la sintassi di base:

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

fruits.each do |fruit|
  puts fruit
end

Questo stampa ogni frutto su una riga separata. La variabile tra le barre (|fruit|) è chiamata variabile di blocco. Contiene temporaneamente ogni elemento mentre l'iteratore scorre l'array.

Per i blocchi su una sola riga, puoi usare le parentesi graffe invece di do...end:

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

Il metodo each è potente perché puoi eseguire qualsiasi operazione su ciascun elemento. Ecco un esempio che calcola un totale progressivo:

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

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

puts total  # Restituisce in output: 50

A differenza dei cicli for, la variabile di blocco in each rimane circoscritta al blocco, mantenendo il codice più pulito e meno soggetto a comportamenti imprevisti.

challenge icon

Sfida

Facile

Leggi una singola riga di input contenente interi separati da virgole (ad es., 4,7,2,9,5).

Dividi l’input in un array di interi, quindi usa l’iteratore each per:

  1. Stampare ogni numero moltiplicato per 3 su una propria riga
  2. Calcolare la somma di tutti i numeri e stamparla dopo il ciclo

Prima del ciclo, usa una variabile inizializzata a 0 per accumulare la somma mentre iteri sull’array.

Ad esempio, se l’input è 4,7,2,9,5, l’output dovrebbe essere:

12
21
6
27
15
Sum: 27

Se l’input è 10,20,30, l’output dovrebbe essere:

30
60
90
Sum: 60

Se l’input è 1,2,3,4, l’output dovrebbe essere:

3
6
9
12
Sum: 10

Se l’input è 5, l’output dovrebbe essere:

15
Sum: 5

Provalo tu

# Leggi gli interi separati da virgole
input = gets.chomp

# Dividi l'input in un array di interi
numbers = input.split(",").map(&:to_i)

# Inizializza la variabile sum
sum = 0

# TODO: Scrivi il tuo codice qui sotto
# Usa l'iteratore each per:
# 1. Stampare ogni numero moltiplicato per 3
# 2. Aggiungere ogni numero alla variabile sum

# Stampa la somma finale
puts "Sum: #{sum}"
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Ruby online