@arruah

Как пропустить через вложенный цикл два массива в ruby?

Изучаю руби на курсе.
Есть задача:

Написать программу, которая печатает список товаров и их цены в виде чека. Товары и
их цены хранятся в программе в двух массивах одинаковой длины:
items = ["Chocolate", "Cheese", "Milk", "Bread";]
prices = [3, 15, 4.5, 2.15]
Пример вывода:
Name Price
Chocolate 3.00
Cheese 15.00
Milk 4.50
Bread 2.15


Я написал вот такое:
goods = ["Chocolate", "Cheese", "Milk", "Bread"]
prices = [3, 15, 4.50, 2.15]
puts "            Name" + "      " + "Price"

goods.each do |g|
  prices.each do |p|
#    puts sprintf("%20s", g.to_s) + "     " + sprintf("%6i", p)
     puts g.to_s + "     " + p.to_s 
    break
  end
end


Не могу разобраться как перебирать вложенный цикл с ценами так как в выводе итерируются только наименования.
Name      Price
Chocolate     3
Cheese     3
Milk     3
Bread     3
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ответы на вопрос 1
0xD34F
@0xD34F
Не нужен вложенный цикл. Добавьте индексы, и обращайтесь к элементам второго массива:

goods.each.with_index do |n, i|
  puts n + " " + prices[i].to_s
end

UPD. Или можно объединить массивы:

print goods.zip(prices).map{|n| n.join(" ")}.join("\n")
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы