Menu
Coddy logo textTech

Iterator each

Część sekcji Podstawy ścieżki Ruby w Coddy. Lekcja 65 z 88.

Ruby zapewnia bardziej elegancki sposób iterowania po tablicach niż używanie pętli for lub while. Iterator each to preferowany w Ruby sposób przetwarzania każdego elementu kolekcji.

Oto podstawowa składnia:

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

fruits.each do |fruit|
  puts fruit
end

To wyświetla każdy owoc w osobnym wierszu. Zmienna między pionowymi kreskami (|fruit|) nazywa się zmienną blokową. Tymczasowo przechowuje każdy element, gdy iterator przechodzi przez tablicę.

W przypadku bloków jednowierszowych możesz użyć nawiasów klamrowych zamiast do...end:

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

Metoda each jest potężna, ponieważ możesz wykonać dowolną operację na każdym elemencie. Oto przykład, który oblicza sumę narastającą:

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

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

puts total  # Wyświetla: 50

W przeciwieństwie do pętli for, zmienna blokowa w each pozostaje w obrębie bloku, dzięki czemu kod jest czytelniejszy i mniej podatny na nieoczekiwane zachowanie.

challenge icon

Wyzwanie

Łatwy

Wczytaj jeden wiersz danych wejściowych zawierający liczby całkowite oddzielone przecinkami (np. 4,7,2,9,5).

Podziel dane wejściowe na tablicę liczb całkowitych, a następnie użyj iteratora each, aby:

  1. Wypisać każdą liczbę pomnożoną przez 3 w osobnym wierszu
  2. Obliczyć sumę wszystkich liczb i wypisać ją po pętli

Przed pętlą zainicjuj zmienną wartością 0, aby gromadzić sumę podczas iterowania po tablicy.

Na przykład, jeśli dane wejściowe to 4,7,2,9,5, wynik powinien być następujący:

12
21
6
27
15
Sum: 27

Jeśli dane wejściowe to 10,20,30, wynik powinien być następujący:

30
60
90
Sum: 60

Jeśli dane wejściowe to 1,2,3,4, wynik powinien być następujący:

3
6
9
12
Sum: 10

Jeśli dane wejściowe to 5, wynik powinien być następujący:

15
Sum: 5

Spróbuj swoich sił

# Wczytaj liczby całkowite rozdzielone przecinkami
input = gets.chomp

# Podziel dane wejściowe na tablicę liczb całkowitych
numbers = input.split(",").map(&:to_i)

# Zainicjalizuj zmienną sum
sum = 0

# TODO: Napisz swój kod poniżej
# Użyj iteratora each, aby:
# 1. Wypisać każdą liczbę pomnożoną przez 3
# 2. Dodać każdą liczbę do zmiennej sum

# Wypisz końcową sumę
puts "Sum: #{sum}"
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Ruby online